Iphone 会出现奇怪的行为
我有一个选项卡栏控制器,其中包含一些选项卡栏项 用户第一次点击选项卡栏项目时,我希望打开alertview,以便用户可以阅读一些小的说明提示 我有一个全局变量(比如CONFIG),它包含一些布尔值(CONFIG.tip1AlreadySeen、CONFIG.tip1AllreadySeen等)。所有这些布尔值都被初始化为NO 当用户点击选项卡栏项时,将执行其viewcontroller中的ViewWillExample方法。在这个方法中,我使用了如下代码:Iphone 会出现奇怪的行为,iphone,objective-c,global-variables,viewwillappear,Iphone,Objective C,Global Variables,Viewwillappear,我有一个选项卡栏控制器,其中包含一些选项卡栏项 用户第一次点击选项卡栏项目时,我希望打开alertview,以便用户可以阅读一些小的说明提示 我有一个全局变量(比如CONFIG),它包含一些布尔值(CONFIG.tip1AlreadySeen、CONFIG.tip1AllreadySeen等)。所有这些布尔值都被初始化为NO 当用户点击选项卡栏项时,将执行其viewcontroller中的ViewWillExample方法。在这个方法中,我使用了如下代码: -(void) viewVillApp
-(void) viewVillAppear: (BOOL) animated {
extern CONFIG; // <- it's not the actual code but it indicates that a global variable must be used
[super viewWillAppear: animated];
if(CONFIG.tip1AlreadySeen == NO) {
CONFIG.tip1AlreadySeen = YES;
// code for showing the alertview
}
}
-(void)viewVillAppear:(BOOL)动画{
extern CONFIG;//为什么它必须是全局的而不包含在视图控制器本身中?只需在视图控制器上切换一个简单的BOOL
@属性。为了在应用程序的多次运行中保持这种持久性,请将结果保存到NSUserDefaults,然后在每次初始化视图控制器时检查该属性oller.在这种情况下,您是对的:我不需要全局变量。但是为了在我的应用程序的多次运行中保持持久性,我创建了一个全局对象配置,当用户退出应用程序时,它会写入磁盘(使用NSKeyedArchiver)。我还没有尝试使用NSUserDefault,我会看一看。但我的问题仍然存在:为什么在一个viewcontroller中分配CONFIG.tip1AlreadySeen=是,而在其他一些VIE控制器中不是?
-(void) viewVillAppear: (BOOL) animated {
extern CONFIG; // <- it's not the actual code but it indicates that a global variable must be used
[super viewWillAppear: animated];
if(CONFIG.tip1AlreadySeen == NO) {
// code for showing the alertview
}
}
-(void) viewDidAppear: (BOOL) animated {
extern CONFIG;
CONFIG.tip1AlreadySeen = YES;
}