0

我的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];

我想要的是保留ImportantViewControllerMainViewController-like即使我去其他观点。我不知道它是否可以在 ViewController 中完成,但不是 removeFromSuperView 或者只是将它放在所有其他 ViewController 的后面。可能吗?如何?

谢谢。

4

2 回答 2

0

在 MenuViewController.h 文件中创建一个属性,就像这样......

#import "ImportantViewController.h"

@property (nonatomic, strong) ImportantViewController *importantViewController;

关键是使属性变得强大,这意味着您的 menuViewController 将保留对您的重要视图控制器的引用,并在幕后增加保留计数。

在您的视图中确实加载(或任何地方,真的),您可以设置您的重要视图控制器...

@syntheseize importantViewController;


- (void)viewDidLoad
{
     self.importantViewController = [[ImportantViewController alloc] init];
}

然后,当您准备好展示它时,请这样做:

[self presentViewController:importantViewController Animated:YES];

然后,当您最终关闭它时,您的 menuViewController 仍然会引用它并且不会被释放。然后,您可以稍后再次显示相同的控制器。

注意:这一切都假设您使用的是自动引用计数 (ARC)。

于 2012-06-28T15:25:03.020 回答
0

让 importantViewController 作为起始视图控制器,并以模态方式呈现所有其他视图。当你想要切换视图时,调用dismissModalViewControllerAnimated 方法,然后呈现一个新视图。如果您有文本字段或您希望能够保留在其中输入的信息而不在每次显示视图时保存/加载它的东西,这将起作用。

//Inside all view controllers aside from the important one

    [self dismissModalViewControllerAnimated:YES];

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

于 2012-06-28T18:22:21.403 回答