2013-09-29 83 views
1

我正在创建一个应用程序,其中需要View Controller的映射在切换到View Controller B后处于相同状态。但是,我不知道如何切换视图以查看相同的状态?当我从View Controller B切换回View Controller A时,意味着我需要创建View Controller A的新实例,然后推送该View Controller。但是,这意味着我从第一次加载时就丢失了所有实例数据。我如何在第一次看到这些数据时保存数据?切换到View Controller B后如何保持View Controller A的状态?

回答

0

我的印象是,我需要制作View Controller A的新实例,然后推送View Controller。

绝对不是。假设您使用的是导航控制器,并且您已经按下了控制器B,只需将其弹出(导航控制器上的popViewController:)即可返回到原始实例A.

创建A的新实例看起来像一个坏的因为它可以导致无限高的导航堆栈。

如果您正在展示模态视图控制器,其原理是相同的。 present...将B置于A之上。dismiss...将删除B并将您带回原始A.

+0

我该如何“回到A的原始实例”? –

+0

使用popViewController。你在使用导航控制器吗?你如何从A转移到B?你提到推动,所以我假设你正在使用导航控制器。 – jrturton

+0

我使用“presentViewController”来呈现新的视图控制器,并使用“dismissViewController”来关闭当前的视图控制器。什么样的代码可以回到原始状态? –

0

您需要了解当您从一个视图控制器移动到下一个视图时,新视图不会显示,直到你已经将控制权交还给了IOS(或者你已经退出了该方法)。

例如

presentviewcontroller ... ..

做点什么

回报; - >你的新视图控制器只在这个语句后得到控制 }

所以变量像 NSString * c = @“YES”; 将消失,但

properties such as 

    @property (nonatomic,strong) *c; 

will retain whatever value you have placed in it. 

这是您的问题吗?

+0

如果您想知道在dissmissviewcontroller之后你将处于等待状态,等待最后一个控制器的最后一个视图的响应。 (等待按下按钮)。 – Paulo

相关问题