所以我在ViewController.h中声明了这个:
@property (nonatomic) BOOL areThereAds;
如何在AppDelegate.m类中访问此变量,以便在areThereAds == NO
UIStoryboard *storyboard;
if (areThereAds == NO){
storyboard == [UIStoryboard storyboardWithName:@"Main_iPhone-noAds" bundle:nil];
}
else{
storyboard == [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil]
}
时加载具有不同布局的不同故事板。
类似的东西:
{{1}}
答案 0 :(得分:2)
在整个应用程序中访问布尔值的另一种方法是将其存储在[NSUserDefaults standardUserDefaults]中,如下所示:
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isCompleted"];
[[NSUserDefaults standardUserDefaults] synchronize];
从任何类中检索
BOOL someBool = [[NSUserDefaults standardUserDefaults] boolForKey:@"isCompleted"];
答案 1 :(得分:0)
当我处理与外部API响应相关的数据时,我创建了一个单例类,我可以在每个ViewController实现文件中包含标题,然后获取单例实例,然后检索它的值。
例如:
ViewController1.h内部:
#include "SingletonClass.h"
ViewController1.m内部:
[[SingletonClass getClassInstance] someBool:YES];
在要从以下位置检索变量的类的头文件中:
#include "SingletonClass.h"
在要从以下位置检索变量的类的实现文件中:
bool someBool = [[SingletonClass getClassInstance] someBool]
if (someBool) {
} else {
}
我现在不在我的Mac前面,所以这可能不完全在语法上正确,但我希望它可以让你知道如何完成你的问题
注意:IMO接受的答案使用NSUserDefaults是一种不好的做法,因为它是一个系统范围的用户偏好数据库,为它分配应用程序特定的值感觉就像使用它不适合它的东西。 (我们想在Mac上使用Windows风格的注册表吗?)