您可以在不使用导航控制器的情况下展示/关闭 VC。
请注意术语:push/pop 用于导航控制器堆栈上的 VC,present/dismiss 用于其他 VC(而不是导航控制器堆栈)上的 VC。
有几种方法可以在另一个 VC 之上呈现 VC,这取决于该 VC 是否也存在于您的 SB 上:
1- 如果您的 IB 中不存在 VC,而您只是以编程方式创建和展示 VC,您可以执行以下操作:
MyUIViewControllerSubclass *myLittleSubclass=[[MyUIViewControllerSubclass alloc]init];
myLittleSubclass.view.frame=self.view.frame; //this is for exmaple only
[self presentViewController:myLittleSubclass animated:YES completion:nil];
有了上述内容,您显然必须首先将 MyUIViewControllerSubclass Objective C 类添加到您的项目中(使用添加文件)并将其导入到您放置上述代码的任何类中。
稍后要关闭它,您可以使用 MyUIViewControllerSubclass 类本身的以下代码。
[self.parentViewController dismissViewControllerAnimated:YES completion:nil];
2- 如果您已经将 MyUIViewControllerSubclass Objective C 类添加到您的项目中(使用添加文件)但您打算使用 IB 来设计它并且您已经在 IB 中添加了 VC 并将其在 IB 中的类更改为 MyUIViewControllerSubclass,您然后可以使用此代码:
mySubclass *myLittleSubclass=[self.storyboard instantiateViewControllerWithIdentifier:@"theVC"];
[self presentViewController:myLittleSubclass animated:YES completion:nil];
您可以像上面一样解雇。确保在 SB 和身份检查器中单击 VC,将 SB ID 设置为“theVC”并选中“使用 SB ID”。
希望这可以帮助。