我正在尝试使用three20创建一个应用程序,但我遇到了为TTnavigator设置root视图控制器的问题。
这是映射代码
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://root/(loadFromNib:)/(withClass:)" toViewController:[MainViewController class]];
显然我做错了什么
提前感谢:)
答案 0 :(得分:1)
我最后想出来
这是我的解决方案
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
TTNavigator * navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
navigator.window = self.window;
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://root/(loadFromNib:)/(withClass:)" toSharedViewController:self];
if (![navigator restoreViewControllers]) {
[navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://root/MainViewController/MainViewController"]];
}
}
/**
* Loads the given viewcontroller from the nib
*/
- (UIViewController*)loadFromNib:(NSString *)nibName withClass:className {
UIViewController* newController = [[NSClassFromString(className) alloc]
initWithNibName:nibName bundle:nil];
[newController autorelease];
return newController;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
/**
* Loads the given viewcontroller from the the nib with the same name as the
* class
*/
- (UIViewController*)loadFromNib:(NSString*)className {
return [self loadFromNib:className withClass:className];
}
///////////////////////////////////////////////////////////////////////////////////////////////////
/**
* Loads the given viewcontroller by name
*/
- (UIViewController *)loadFromVC:(NSString *)className {
UIViewController * newController = [[ NSClassFromString(className) alloc] init];
[newController autorelease];
return newController;
}
- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)URL {
[[TTNavigator navigator] openURLAction:[TTURLAction actionWithURLPath:URL.absoluteString]];
return YES;
}