故事板 - 视图控制器中的导航控制器

问题描述:

我是故事板中的新手,在故事板中我在视图控制器上有一个按钮。点击按钮我试图添加导航控制器视图作为子视图,它正在增加,但是当我尝试推动使用导航控制器的应用程序崩溃。请帮我解决这个问题。我上传的源代码,请从以下网址故事板 - 视图控制器中的导航控制器

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

+1

我会建议在您的帖子中添加相关的代码,而不是要求用户下载您的源代码。我怀疑很多人会愿意从第三方网站打开zip文件,包括我自己在内。另外,我们可以使用更多关于您遇到的崩溃的信息。你的控制台应该吐出一些信息,所以请把它粘贴到你的问题中。 – 2012-07-10 19:01:13

故事板的巨大优势是,很多工作可以在Interface Builder进行下载。因此,为了使你的代码工作,你应该做的未来:

  1. 打开你的故事板,并进行以下修改:
    1. 点击“viewCtrl”按钮右侧的按钮,并在弹出的菜单中删除参考方法-(IBAction)bttnTapped:(id)sender。不要在按钮触摸上调用操作方法,而应该通过从“viewCtrl”按钮拖动到导航控制器并选择“Modal”类型的segue来添加segue。
    2. 选择导航控制器并打开属性检查器。然后在“顶栏”栏中选择导航栏。
    3. 在“Ctrl1”视图中单击“ctrl1”按钮上的右键并在弹出菜单中删除对方法-(IBAction)bttnTapped:(id)sender的引用。
    4. 将视图控制器从对象库添加到故事板。然后在身份检查器的“类”字段中键入“ctrl2”。之后按住ctrl-从“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)viewDidUnload放到ctrl1.m后面。

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