0

我正在使用情节提要,我有一个视图控制器,单击时我需要以模态方式显示另一个视图控制器。我正在尝试使用此代码

[self presentViewController:zoomV animated:YES completion:NULL];

我想出了一个空白屏幕。这就是我创建的方式

zViewController *zoomV = [[zViewController alloc] init];
[self presentViewController:zoomV animated:YES completion:NULL];

我尝试对此进行研究,一些答案围绕使用情节提要而没有关联的 rootviewcontroller。所以我在初始场景中拥有一个navigationController,然后从那里我将一个关系拖到另一个Viewcontroller,该关系将它定义为rootViewcontroller。这足够了吗?还是这无关紧要?

4

2 回答 2

4

由于您的故事板中有您的 zViewController,您应该使用UIStoryboard instantiateViewControllerWithIdentifier:. 在您的第一个视图控制器中,不是使用 alloc/init 创建 zViewController,而是在情节提要中为您的 zViewController 设置标识符。

zViewController *zoomV = [self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];
[self presentViewController:zoomV 
                   animated:YES 
                 completion:NULL];

您也可以使用 segue 并直接执行它来完成相同的操作,而无需实例化 zViewController,但这取决于您。

作为第二条(小)注释,不要在 ObjC 中命名以小写开头的类 :)。

于 2013-07-07T21:44:51.350 回答
0

您可以参考下面的故事板片段:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
AddNameViewController *sfvc = [storyboard instantiateViewControllerWithIdentifier:@"AddNameViewController.m"];
[sfvc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:sfvc animated:YES completion:nil];
于 2013-11-19T17:51:35.993 回答