带分割视图控制器的空白窗口

时间:2011-07-04 04:03:51

标签: iphone objective-c ipad three20

我遵循与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

1 个答案:

答案 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