我的ViewControllers
有问题。其中有四个。
这是他们的顺序。对于我的观点的命名,这只是一个例子。
startViewController ------> menuViewController ------> C1ViewController
\
\ ------> ImportantViewController
startViewController
是我的简介屏幕,完成后会[self presentViewController:vc animated:YES completion:NULL];
进入我的menuViewController
。
在我的menuViewController
两个ViewController的按钮中,如上图所示。另外,我在视图中将它们与[self presentViewController:vc animated:YES completion:NULL];
一起显示在menuViewController
中,并使用此[self dismissModalViewControllerAnimated:YES];
ImportantViewController
即使我转到其他观看点,我想要保留MainViewController-like
为{{1}}。我不知道它是否可以在ViewController中完成,但不是removeFromSuperView或只是把它放在所有其他ViewControllers后面。可能吗?怎么样?
感谢。
答案 0 :(得分:0)
在MenuViewController.h文件中创建一个属性,就像这样......
#import "ImportantViewController.h"
@property (nonatomic, strong) ImportantViewController *importantViewController;
关键是使属性变强,这意味着你的menuViewController将保留对importantViewController的引用并增加幕后的保留计数。
在您的视图中加载(或任何地方,真的),您可以设置您的ImportantViewController ...
@syntheseize importantViewController;
- (void)viewDidLoad
{
self.importantViewController = [[ImportantViewController alloc] init];
}
然后当你准备好呈现它时,就这样做:
[self presentViewController:importantViewController Animated:YES];
然后当你最终解雇它时,你的menuViewController仍会有一个对它的引用,它将不会被释放。然后,您可以稍后再次显示相同的控制器。
注意:这是假设您使用自动参考计数(ARC)。
答案 1 :(得分:0)
将importantViewController作为起始视图控制器,并以模态方式显示所有其他视图。如果要切换视图,请调用dismissModalViewControllerAnimated方法,然后显示一个新方法。如果您有文本字段或某些内容,您希望能够在每次显示视图时保存/加载信息,那么这将无效。
//Inside all view controllers aside from the important one
[self dismissModalViewControllerAnimated:YES];
要显示一个新的控制器,要么对它进行模态转换,然后从重要的视图控制器调用它或以编程方式调用它。