2012-07-15 51 views
1

我在我的应用程序中有一个帮助模式,“告诉”所有按钮在应用程序处于帮助模式时的行为不同。我应该如何设置一个布尔值,这个布尔值可用于所有我的应用程序控制器?

我希望设置一个全球性的布尔值,表示如果应用程序是在帮助模式与否。

这是什么最佳实践?

感谢 沙尼

+0

NSUserDefault或Singleton类。 – nhahtdh 2012-07-15 14:06:07

+0

我第二个单身人士。 – lnafziger 2012-07-15 14:08:10

+0

或应用程序委托中的属性。 – msk 2012-07-15 14:08:16

回答

1

我建议把它在App代表,然后访问它通过:

AppDelegate *myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
myAppDelegate.yourboolean = YES; 

,并继续这种方式。或使用NSNotification。当您的应用进入帮助模式时,在启用帮助模式的视图控制器中设置NSNotification。

//Put this right after the switch for help mode is turned on! 

    [[NSNotificationCenter defaultCenter] postNotificationName:@"helpModeOn" object:yourboolean]; 

,并在所有其他视图控制器或文件,帮助模式会影响应该有这样的:

-(void)viewDidLoad: 
{ 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ThingYouWantToDoWhenHelpModeIsOn:) name:@"helpModeOn" object:nil]; 
} 

- (void)ThingYouWantToDoWhenHelpModeIsOn:(NSNotification *)notification{ 
     // Make sure you have an BOOL in your header file for all the other view controllers 
     ThatBooleanValue = [notification object]; 
     [self performSelector:@selector(OtherThings:) object:ThatBooleanValue]; 
} 

希望这有助于!

0

您可以设置一个全局静态布尔并使其可作为通过一些.h文件中的extern。在某些情况下,这是完全可以接受的方式。

如果您希望用户以他们离开它的方式返回到您的应用程序,例如他们现在处于“帮助”模式,第二天离开并返回并仍然处于帮助模式,那么我可以使用Preferences(通过NSUserDefaults) 。

相关问题