我想加载没有按钮的 View Controller 。我将标识符设置为 10 并尝试使用
if(...){
//load ViewController2
UIViewController *vc = [[self storyboard] instantiateViewControllerWithIdentifier:@"10"];
[self.navigationController pushViewController:vc];
}
这是我的项目http://www.sendspace.com/file/kfjhd5
有什么问题?
最佳答案
您问题中的上述代码很好。我知道您问的是如何在没有按钮的情况下执行此操作,但您演示的问题是您使用了一个按钮,但没有正确连接到 IBAction
.您的 goNext
应在您的 .h 中定义为:
- (IBAction)goNext:(id)sender;
实现应该是:
- (IBAction)goNext:(id)sender
{
UIViewController *vc=[[self storyboard] instantiateViewControllerWithIdentifier:@"10"];
[self.navigationController pushViewController:vc animated:YES];
}
我想你创造了
IBAction
手动。将来值得注意的是,如果您从按钮向下控制拖动(或右键单击拖动)到助手编辑器文件,您可以自动创建 IBAction
接口(interface),并且不会发生这种错误:顺便说一句,我个人更喜欢使用 segue,所以我首先定义 View Controller 本身之间的 push segue。在 Xcode 6 中,可以从场景上方的 View Controller 图标控制拖动到目标场景:
在 6 之前的 Xcode 版本中,可以从场景下方栏中的 View Controller 图标进行控制拖动:
然后我在 Interface Builder 中选择 segue 并给它一个“ Storyboard标识符”(在这个例子中,我称之为
pushTo10
):然后我有我的
goNext
执行那个 segue,而不是手动调用 pushViewController
:- (IBAction)goNext:(id)sender
{
[self performSegueWithIdentifier:@"pushTo10" sender:self];
}
这样做的好处是我的 Storyboard现在直观地代表了我的应用程序的流程(而不是看起来有一个漂浮在那里的场景),并且像导航栏这样的图形元素在 Storyboard中正确表示。
您不必这样做,但这是另一种需要注意的选择。
关于ios - 如何在 Storyboard 中加载没有按钮的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499695/