主视图控制器

时间:2012-06-28 15:14:52

标签: iphone ios xcode

我的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后面。可能吗?怎么样?

感谢。

2 个答案:

答案 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];

要显示一个新的控制器,要么对它进行模态转换,然后从重要的视图控制器调用它或以编程方式调用它。