iPhone中的UIViewController内部有UINavigationController

3
步骤:
  • List item
  • Create a project called Nav.
  • Create a new UIViewController BaseViewController (with XIB) and FirstViewController (with XIB).
  • In the NavAppDelegat.h define baseController variable

    @interface NavAppDelegate : NSObject <UIApplicationDelegate> {
    BaseViewController *baseController;
    }
    @property (nonatomic, retain) IBOutlet BaseViewController *baseController; 
    
  • In the NavAppDelegat.m add baseController to the window:

    @synthesize baseController;
    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    [self.window addSubview:baseController.view];
    [self.window makeKeyAndVisible];
    return YES;
    }
    
  • Open the BaseViewController.xib file and add UINavigationController, set its Root View Controller class and XIB to FirstViewController (in the inspector).

  • Also connect navigationController variable with the UINavigationController.
我认为这应该显示带有导航栏的FirstViewController。如果我直接在MainWindow.xib上执行此操作,则一切都按照我预期的那样工作,但是在这里我看不到导航栏。我错过了什么吗?谢谢!
更新: 所以问题只是当我在其他控制器(这里是BaseViewController.xib)中使用UINavigationController而不是MainWindow.xib时,我看不到导航栏。
1个回答

3
我不确定你是否试图直接将导航控制器连接到窗口,或从第二个XIB连接(这应该可以工作),或者你正在将导航控制器作为另一个视图的子视图,这是行不通的。
UINavigationController只能用作UIWindow的主要子视图或UITabController的子视图。苹果不希望您在其他上下文中嵌入导航控制器。
有关更多详细信息,请参见视图控制器编程指南中的Combined View Controller Interfaces

嗨,Seamus,这是否意味着在我的UISplitViewController的DetailedViewController中,我不能有带有UITableView接口的UIViewController的UINavigationController,因为我无法连接navigationController子视图?我可以在详细视图中显示UINavigationController,但似乎表格视图本身无法呈现。 - fes
2
组合视图控制器界面现在可以在此处找到:https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html - cbrauchli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接