以编程方式打开视图控制器,而不使用Seque。

12

我知道这是一个非常简单的问题,但我却一无所获。

我有一个故事板,所有的视图控制器都是使用segues打开的,这很好,但是当按钮被按下时,我想用代码打开其中一个视图控制器。

当按下testSliders按钮时,打开名为ViewControllerMonitorMenu的视图控制器的代码是什么?

- (IBAction)testSliders:(id)sender
{

}
2个回答

26

我终于搞定了,感谢大家的帮助:

ViewControllerMonitorMenu *monitorMenuViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewControllerMonitorMenu"];
[self presentViewController:monitorMenuViewController animated:NO completion:nil];

你在Storyboard中给你的视图命名了吗? - RGriffiths

6

这段代码是通过程序创建了一个对象,对象的名称为ViewControllerMonitorMenu,同时您也可以使用它。

- (IBAction)testSliders:(id)sender 
    {
       ViewControllerMonitorMenu * object = [[ViewControllerMonitorMenu alloc] init];
        [self presentViewController:object animated:YES completion:nil];

    }

抱歉 - 谢谢你的帮助 - 但我不明白。我已经复制了你的代码,但它无法识别MYViewController - 建议应该是UIViewController。另外,我使用StoryboardID 是正确的吗? - RGriffiths
检查我的编辑...;) 它只是一个变量,你可以随意命名...没有更多的要求 :)+1 给你...很好的开始,继续保持。 - iPatel
在您的 ViewControllerMonitorMenu 中的 viewDidLoad 方法中,输入 self.view.backgroundColor = [UIColor redColor];。 - iPatel
视图控制器ViewControllerMonitorMenu已经设置好并加载了。我的意思是,你的代码似乎没有打开它,屏幕只是变成了空白。再次确认一下,我是否应该使用StoryboardID来引用这个视图控制器? - RGriffiths
好的 - 感谢您的尝试。屏幕变成了红色,但我不想要一个红色的屏幕 - 我想看到带有所有内容的视图控制器。 - RGriffiths
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接