【发布时间】:2016-04-09 03:18:45
【问题描述】:
故事板中有两个viewcontrollers。第一个视图是LaunchScreen,它首先出现。使用UILongPressGestureRecognizer 将显示第二个视图。
第一次显示第二个视图时,我的第二个视图代码正在检查一个标志是否存在文件。第二个视图有一个UIButton,如果文件不存在则禁用。如果我用
[self dismissViewControllerAnimated:YES completion:nil];
第二个视图消失了,我看到了我的第一个视图。效果很好。
但是如果我重复它并出现第二个视图,viewcontroller 不会检查我更改的标志,因为该文件现在存在。
以下方法
-(void)showConfigView {
[self presentViewController:[self config] animated:YES completion:nil];
}
正在调用第二个视图。
我的问题是:为什么我的UIButton 仍然被禁用,尽管标志有另一个值并且文件存在?
【问题讨论】:
-
您在哪里(以您的第二个视图的哪种方法)检查此标志?
-
可能是你检查标志的方式不对,你需要在出现之前做一些事情,比如:secondViewController.flag = self.flag,使用委托、通知或在你的 secondViewController 中有一个 firstViewController 的实例获取标志值。看起来您正在检查 -viewDidLoad 方法中的标志值?尝试更改为 -viewDidAppear。
-
@sticker/@rokjarc2:我检查了 -viewDidLoad 中的标志。
-
- viewDidLoad 只运行一次,将代码移动到 viewWillAppear 或 -viewDidAppear
标签: ios objective-c iphone cocoa-touch uibutton