Man*_*nni 13 iphone objective-c interface-builder uinavigationcontroller ios
1.步骤:创建一个新的UIViewController:
- Xcode - > New File ... - > Cocoa Touch Class - > UIViewController
- 名称:MyViewController
2.步骤:将"导航控制器"(UINavigationController)从库拖放到MyViewController.xib

3.Step:我确定,我必须做一些事情来正确连接导航控制器,不是吗?
4.Step:尝试将新的View Controller作为模态对话框启动:
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
NSLog(@"navContr: %@", myViewController.navigationController);
[self.navigationController presentModalViewController: myViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
结果:"navContr:nil"
5.Step:你可以看到新的模态视图(MyViewController),但没有NavigationController,也没有UINavigationBar.
非常感谢您的帮助!
更新1:
6.Step:我将一个新的UIViewController(ViewNavi2)设置为"Root View Controller":

7.Step:我IBOutlet UINavigationController *navigationController在类MyViewController中定义一个并配置xib:Navigation Controller - > Connections - > Referencing Outlets
但我的导航控制器仍然是零:-(
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
NSLog(@"navContr: %@", myViewController.navigationController);
// -> "navContr: nil"
Run Code Online (Sandbox Code Playgroud)
Hen*_*nry 15
我还想在NIB文件中包含导航控制器,但Apple文档所说的只是在没有实际解释如何操作的情况下它"不是最佳的".我希望我的主选项卡窗口调用包含典型导航控件的模态窗口,而无需以编程方式定义导航控制器.我将分享我是如何做到的.
你的代码与我的代码非常相似,因为我还在IBOutlet UINavigationController *navigationControllerMyViewController中定义了代码.在Interface Builder中,我只是在根视图控制器中定义了我的视图,并将File的Owner->视图设置为该视图定义.
与您的代码类似,我在父窗口中执行了以下操作:
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self presentModalViewController:myViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
(我在自己调用presentModelViewController,我不知道你为什么self.navigationController.)当我测试它时,结果是我的视图是从NIB文件加载的,但导航栏丢失了.MyViewController中还有一行代码解决了这个问题:
- (void)viewDidLoad {
[super viewDidLoad];
[self setView:myNavigationController.view];
}
Run Code Online (Sandbox Code Playgroud)
我在这里所做的就是将MyViewController的视图设置为指向myNavigationController.view,其中包含在NIB文件中定义的所有内容,包括导航控制器.
| 归档时间: |
|
| 查看次数: |
32673 次 |
| 最近记录: |