2010-04-05 119 views
1

我设置了一个导航控制器作为分割视图控制器的详细视图(NewFeedsNavigationController继承自UINavigationController)。UINavigationController作为UISplitViewController的详细视图

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain]; 
    UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; 
    NewsFeedsNavigationController *newsFeedsNavigationController = [[NewsFeedsNavigationController alloc] initWithCategories]; 

    splitViewController = [[UISplitViewController alloc] init]; 
    masterViewController.splitViewController = splitViewController; 
    splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, newsFeedsNavigationController, nil]; 
    splitViewController.delegate = newsFeedsNavigationController; 


    // Add the split view controller's view to the window and display. 
    [window addSubview:splitViewController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 

事实上,导航控制器在纵向方向上出色地工作,但在横向方向上有点怪异。在层次结构中导航(朝向根视图)时,我总是必须在每个视图中点击两次。第一次点击时,可见视图从堆栈弹出,第二次点击导航栏。通常,两者同时发生。我不知道发生了什么问题。

回答

3

我错了。错误的行为在最新版本中仍然存在,但我为我的案例找到了解决方案。您不得派生自定义的UINavigationController子类。它甚至在视图控制器程序员指南中这样说。在限制之后,我能够解决所有的问题。

相关问题