如何加载视图控制器没有button在故事板?
我想加载没有button的视图控制器。 我把标识符设置为10,并尝试使用
if(...){ //load ViewController2 UIViewController *vc = [[self storyboard] instantiateViewControllerWithIdentifier:@"10"]; [self.navigationController pushViewController:vc]; }
这里是我的progect http://www.sendspace.com/file/kfjhd5
什么是问题?
上面的代码在你的问题是好的。 我知道你问的是如何做到这一点没有button,但你的演示的问题是,你使用了一个button,但没有正确地把它连接到IBAction
。 你的goNext
应该在你的.h中定义为:
- (IBAction)goNext:(id)sender;
实施应该是:
- (IBAction)goNext:(id)sender { UIViewController *vc=[[self storyboard] instantiateViewControllerWithIdentifier:@"10"]; [self.navigationController pushViewController:vc animated:YES]; }
我认为你手动创build了这个IBAction
。 在将来值得注意的是,如果您从button控制 (或右键单击拖动)到助手编辑器文件,您可以自动创build您的IBAction
接口,这种错误不会发生:
顺便说一下,我个人喜欢用segue,所以我首先定义视图控制器之间的push segue。 在Xcode 6中,可以控制从场景上方的视图控制器图标到目标场景的-drag:
在6之前的Xcode版本中,可以控制场景下面栏中的视图控制器图标的-drag:
然后,我在Interface Builder中selectsegue并给它一个“storyboard identifier”(在这个例子中,我称之为pushTo10
):
然后,我的goNext
执行该segue,而不是手动调用pushViewController
:
- (IBAction)goNext:(id)sender { [self performSegueWithIdentifier:@"pushTo10" sender:self]; }
这样做的好处是,我的故事板现在可视化地代表了我的应用程序的stream程(而不是看起来有一个场景漂浮在那里)和像导航栏这样的graphics元素在故事板中正确表示。
你不必这样做,但是它是另一种可以被意识到的select。