我遵循与TTSplitViewController的TTCatalog示例完全相同的代码,从app委托代码,TTSplitViewController代码以及TTTableViewController的代码开始。但是,当我运行应用程序时,我得到一个空白屏幕。
我从一个基于窗口的应用程序开始并删除了nib文件,因为TTCatalog上的示例没有它。
我在这里做错了什么?
以下是一些代码,在我的app委托中,didFinishLaunchedWithOptions我有:
TTNavigator* navigator = [TTNavigator navigator];
navigator.supportsShakeToReload = YES;
navigator.persistenceMode = TTNavigatorPersistenceModeAll;
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
if (TTIsPad()) {
[map from: @"tt://catalog"
toSharedViewController: [SplitViewController class]];
SplitViewController* controller =
(SplitViewController*)[[TTNavigator navigator] viewControllerForURL:@"tt://catalog"];
TTDASSERT([controller isKindOfClass:[SplitViewController class]]);
map = controller.rightNavigator.URLMap;
}
其他所有内容与TTCatalog示例类似。
我只是想知道是否有人可以给我一个关于如何创建TTSplitViewController应用程序的指针,因为这非常令人沮丧。 TTCatalog上的示例看起来很简单,但在复制时,一切都失败了。
如需完整代码,可以下载here
答案 0 :(得分:1)
如果使用xcode模板创建项目,则表示使用nib文件加载了应用程序委托。您将不得不更改它,因为Three20根本不使用nib文件。
打开main.m文件,然后更改:
int retVal = UIApplicationMain(argc, argv, nil, nil);
到
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
(用您的UIApplicationDelegate类名替换@“AppDelegate”。这应该将您的主窗口加载到设备中。
另请注意,TTSplitViewController类有点儿错误。我不得不修改三个代码中的一些代码以使其正常工作。如果您想尝试我的TTSplitViewController版本,请参阅https://github.com/aporat/three20-splitview-example。