在Xcode 5.0.2中,我创建了带有导航控制器的an app for iPhone和另外3个视图控制器(这里是fullscreen):
我希望LoginViewController(上面屏幕截图中的“登录”标题)是导航控制器的委托,因此它的方法
- (void)navigationController:(UINavigationController *)navigationController
didShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
被调用 - 所以我将以下代码添加到其viewDidLoad
:
UINavigationController *nc = self.navigationController;
[nc setDelegate:self];
这样可行,但我想知道在Interface Builder中是否也可以设置导航控制器的委托?
我尝试从导航控制器的黄色立方体标志中按住Ctrl键拖动到LoginViewController场景,反之亦然 - 但我只提供了一个弹出窗口来创建一个segue ......
答案 0 :(得分:10)
至少在Xcode 6中,可以在Interface Builder中完成。
UINavigationControllerDelegate
在Interface Builder中,从对象库中将对象拖动到导航控制器中(导入到文档大纲或导航控制器中导航控制器上方的工具栏中)
将身份检查器中的对象类设置为UINavigationControllerDelegate
类
从导航控制器对象按住Ctrl键拖动到您的委托对象
从弹出菜单中选择"委托"
这就是全部。现在您的对象将是导航控制器的委托。
答案 1 :(得分:2)
很久很久以前,在故事板存在之前,设置代表是可以使用插座(虽然我不记得是否有可能UINavigationController,我只记得我用UITableView做到了)。您只需右键单击导航控制器并从插座拖动到目标:
然而,根据this answer,它已经不可能了。您可以像{01}一样使用viewDidLoad
或prepareForSegue:
以编程方式执行此操作。
答案 2 :(得分:0)
我对Xcode很新,所以这个解释可能完全错误,而不是你的问题。如果您尝试将视图链接到视图控制器,是否尝试选择视图,然后设置自定义类以在身份检查器下控制它? 同样,我不太明白你的问题,但我想我还是试着提供帮助。