我是故事板的新手,在我的故事板中,我在视图控制器上有一个按钮。单击按钮时,我试图将导航控制器视图添加为子视图,但当我尝试使用导航控制器推送时,应用程序崩溃了。请帮我解决这个问题。我已经上传了源代码,请从以下网址下载
问问题
2303 次
1 回答
1
故事板的最大优点是可以在 Interface Builder 中完成很多工作。因此,要使您的代码正常工作,您接下来应该执行以下操作:
- 打开故事板并进行以下更改:
- 单击“viewCtrl”按钮上的右键并在弹出菜单中删除对该方法的引用
-(IBAction)bttnTapped:(id)sender
。而不是在按钮触摸上调用操作方法,您应该通过从“viewCtrl”按钮到导航控制器的 ctrl 拖动来添加一个 segue,然后选择“模态”类型的 segue。 - 选择导航控制器并打开一个属性检查器。然后在“顶部栏”字段中选择导航栏。
- 在“Ctrl1”视图中单击“ctrl1”按钮上的右键并在弹出菜单中删除对该方法的引用
-(IBAction)bttnTapped:(id)sender
。 - 将对象库中的视图控制器添加到情节提要。然后在身份检查器的“类”字段中输入“ctrl2”。之后 ctrl-drag 从“ctrl1”按钮到“Ctrl2”控制器视图并选择“Push”类型的 segue。
- 单击“viewCtrl”按钮上的右键并在弹出菜单中删除对该方法的引用
Interface Builder 中的故事板视图应如下所示: storyboard view
2.转到 ViewController.h 和 .m 并删除方法- (IBAction)bttnTapped:(id)sender
。
3.转到ctrl1.h和.m并删除方法- (IBAction)bttnTapped:(id)sender
。
代码应该可以工作。但我建议把方法- (void)viewDidLoad
和- (void)viewDidUnload
ctrl1.m 放回去。
如果您想在触摸按钮时但在加载视图之前运行一些代码,您应该重写该方法- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
。
于 2012-07-11T00:10:39.170 回答