0

我是使用Three20的新手,当我使用导航器时,xcode总是报错:应用程序窗口应该在应用程序启动结束时有一个根视图控制器

这是我的代码:

TTNavigator *navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
navigator.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

TTURLMap *map = navigator.URLMap;
[map from:@"tt//view" toViewController:[ViewController class]];
[map from:@"tt//test" toSharedViewController:[TestViewController  class]];
if (![navigator restoreViewControllers]) {
    [navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://view"] ];
}

return YES;

我不明白为什么会这样?谁能帮我吗?

4

1 回答 1

0

我之前遇到过类似的问题,因为视图控制器层次结构不是由 nib 文件创建的。

解决方案是在调用 restoreViewControllers 后手动设置根视图控制器:

TTNavigator *navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
navigator.window = self.window;

TTURLMap *map = navigator.URLMap;
[map from:@"tt//view" toViewController:[ViewController class]];
[map from:@"tt//test" toSharedViewController:[TestViewController  class]];
if (![navigator restoreViewControllers]) {
    [navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://view"] ];
}

// Set the root view controller
[self.window setRootViewController:navigator.rootViewController];

return YES;
于 2012-10-23T21:56:41.520 回答