您会收到此错误消息,因为您可能试图使用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”。
希望这会有所帮助。
谢谢@Shah Paneri,我忘记了笔尖的名字..现在它的工作 – Balamurugan 2013-03-14 12:14:32