0

我是故事板的新手,在我的故事板中,我在视图控制器上有一个按钮。单击按钮时,我试图将导航控制器视图添加为子视图,但当我尝试使用导航控制器推送时,应用程序崩溃了。请帮我解决这个问题。我已经上传了源代码,请从以下网址下载

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

4

1 回答 1

1

故事板的最大优点是可以在 Interface Builder 中完成很多工作。因此,要使您的代码正常工作,您接下来应该执行以下操作:

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

Interface Builder 中的故事板视图应如下所示: storyboard view

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

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

代码应该可以工作。但我建议把方法- (void)viewDidLoad- (void)viewDidUnloadctrl1.m 放回去。

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

于 2012-07-11T00:10:39.170 回答