ios - Storyboard - View Controller 中的导航 Controller

标签 ios uinavigationcontroller storyboard

我是 Storyboard的新手,在我的 Storyboard中,我的 View Controller 上有一个按钮。单击按钮时,我尝试将导航 Controller View 添加为 subview ,它正在添加,但是当我尝试使用导航 Controller 推送时,应用程序崩溃了。请帮我解决这个问题。我已上传源代码,请从以下网址下载

http://www.darrr.com/skyparts/test.zip

最佳答案

Storyboard的最大优点是可以在 Interface Builder 中完成很多工作。因此,为了使您的代码正常工作,您应该执行以下操作:

  1. 打开 Storyboard并进行以下更改:
    1. 单击“viewCtrl”按钮上的右键,然后在弹出菜单中删除对方法 -(IBAction)bttnTapped:(id)sender 的引用。您应该通过按住 Ctrl 键从“viewCtrl”按钮拖动到导航 Controller 来添加一个 segue,而不是在按钮触摸上调用操作方法,并选择“Modal”类型的 segue。
    2. 选择导航 Controller 并打开属性检查器。然后在“顶部栏”字段中选择导航栏。
    3. 在“Ctrl1” View 中单击“ctrl1”按钮上的右键,然后在弹出菜单中删除对方法 -(IBAction)bttnTapped:(id)sender 的引用。
    4. 将 View Controller 从对象库添加到 Storyboard。然后在身份检查器的“类”字段中输入“ctrl2”。之后,按住 Ctrl 键并从“ctrl1”按钮拖动到“Ctrl2” Controller View ,然后选择“推”类型的转场。

Interface Builder 中 Storyboard的 View 应如下所示: storyboard view

2.转到ViewController.h和.m并删除方法- (IBAction)bttnTapped:(id)sender

3.转到ctrl1.h和.m并删除方法- (IBAction)bttnTapped:(id)sender

代码应该可以工作。但我建议将方法 - (void)viewDidLoad- (void)viewDidUnload 放回到 ctrl1.m 中。

如果您想在触摸按钮时但在加载 View 之前运行一些代码,您应该重写方法- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

关于ios - Storyboard - View Controller 中的导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419517/

相关文章:

iphone - 使用 App Delegate 访问通过 Storyboard 创建的 View Controller

ios - AutoLayout 两个标签 30 :70 ratio proportional

ios-chart 值不会基于 x 和 y 轴 Swift 绘制

ios - Swift:ProtocolDelegate 可选值错误

swift - UIImagePickerController 未正确关闭

ios - 通过 NavigationController 传递数据

ios - 状态栏下的 Swift 导航栏

objective-c - 如何在 UIViewController 中创建 View 容器?

ios - 如何在 Xcode Interface Builder 中设置约束,以便 View 相应地改变它们的宽度或高度?

ios - 发送本地推送通知