1

我是iOS开发的新手。在我的应用程序中有两个视图控制器。我试图从我的应用程序中的第一个视图控制器导航到第二个视图控制器。如何导航到iPhone中的下一个视图控制器

SecondView *ss=[[SecondView alloc] initWithNibName:@"Second Page" bundle:nil]; 
    [self.navigationController pushViewController:ss animated:YES]; 

我在“堆栈溢出”中发现了这段代码,但它不起作用。

回答

0

确保您的笔尖名称为Second Page。你的班级名称是SecondView,而nib(xib)名称是Second Page,那么只有它会导航。

+0

谢谢@Shah Paneri,我忘记了笔尖的名字..现在它的工作 – Balamurugan 2013-03-14 12:14:32

1

您会收到此错误消息,因为您可能试图使用Navigator控制器代码(推送)从一个VC到另一个VC,并且您可能没有在代码或Interface Builder中设置导航控制器。

虽然您可以在不使用导航控制器的情况下呈现/关闭VC,但我建议您从此开始。

请注意术语:导航控制器堆栈上的VC使用push/pop,而其他VC(不在导航控制器堆栈上)的VC使用present/dismiss。

有一对夫妇的方式呈现一个VC对另一个VC的“顶部”,它依赖于VC上是否存在SB以及:

1-如果VC不会在你的IB存在而你只是编程方式创建和呈现VC,你可以这样做:

MyUIViewControllerSubclass *myLittleSubclass=[[MyUIViewControllerSubclass alloc]init]; 
myLittleSubclass.view.frame=self.view.frame; //this is for example only 
[self presentViewController:myLittleSubclass animated:YES completion:nil]; 

上述内容,显然你必须先添加MyUIViewControllerSubclass目标C类项目(使用添加文件),并将其导入无论你将上面的代码放在哪一类。

稍后要解雇它,可以使用MyUIViewControllerSubclass类本身的以下代码。

[self.parentViewController dismissViewControllerAnimated:YES completion:nil]; 

2 - 如果你已经添加了MyUIViewControllerSubclass目标C类项目(使用添加文件),但你打算使用IB来设计它,你已经在IB添加VC,改变它的类在IB到MyUIViewControllerSubclass,然后你可以使用此代码:

mySubclass *myLittleSubclass=[self.storyboard instantiateViewControllerWithIdentifier:@"theVC"]; 
[self presentViewController:myLittleSubclass animated:YES completion:nil]; 

可以解雇同上。确保您点击SB中的VC和身份检查员,将SB ID设置为“theVC”,并选中“Use SB ID”。

希望这会有所帮助。

相关问题