iphone - 我的 UIViewController 怎么知道是谁把它放到堆栈上的?

标签 iphone ios cocoa-touch uiviewcontroller

这是对已定义架构的旧版 iPhone 应用程序的补充(几年前,由其他人定义。)

主要限制是主菜单系统的功能基于配置文件,所以我不能从主菜单调用任何特定的初始化代码。

这意味着我正在开发的 View 是独立的,并且必须以某种方式使用来自系统的信息来管理其状态。

此外,在每个屏幕上都有一个“设置”按钮,将用户带到“设置” Pane ,该按钮被推送到“我的” View 顶部的导航堆栈上。当用户关闭设置 Pane 时,我的 View 会按照正常导航重新出现。

好的,这是我的问题:

当用户从菜单进入我的 View 时,我希望它被重置,所以所有输入字段都是空的。

如果用户进入设置屏幕并返回我的屏幕,我希望保留所有以前的输入,即不重置为空字段。

如果用户随后返回主菜单并重新进入我的屏幕,则字段应该再次为空。

是否有一种强大的、记录在案的、最好是简单的方法来知道我是否应该在这种情况下重置字段?

最佳答案

您可以检查导航堆栈以查看设置页面当前是否在堆栈上?

- (void)viewWillAppear:(BOOL)aAnimated
{
    [super viewWillAppear:aAnimated];

    NSArray* stack = [[self navigationController] viewControllers];

    UIViewController* last = [stack lastObject];
}

关于iphone - 我的 UIViewController 怎么知道是谁把它放到堆栈上的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6792111/

相关文章:

ios - ViewControllers 未针对 3.5 英寸屏幕调整大小

ios - 如何使用 2 个或更多自定义单元格创建自定义 UICollectionView?

iphone - 在 iPhone 上播放无限持续时间的声音

cocoa-touch - willAnimateRotationToInterfaceOrientation 在 vi​​ewWillAppear 之前被调用

iphone - 图像的缩略图 View

iphone - Xcode生成的静态库的大小

ios - 无法验证 : Could not find a CFBundlePackageType

javascript - 滚动到维基百科上的特定段落

iphone - Project Navigator 中的 xcode 文件标记框

iphone - viewDidLoad 处的文本左对齐,而不是使用自定义字体居中