我有两个值,它们之间的关系将以两种不同的方式显示在我的主视图控制器中,具体取决于设置值的原因(代码中的位置)。我对这一点的尝试变得错综复杂,结果模糊不清,因为他们在偏远的班级中单独计算了数值。
所以我决定设置一个布尔标志,指示要检查的显示模式,并在主VC的final
中进行相应的操作。
我的问题:
如何设置这样的布尔值?它应该是主视图控制器的属性,然后在更改数字的每个点创建该VC的实例吗?
谢谢!所有帮助表示赞赏!
答案 0 :(得分:1)
我经常创建一个单独的类,当应用程序启动时加载,例如AppSharedData,对于这种情况,每当我遇到我必须使用在不同类中设置或操作的变量的情况时,我将其设置为公共属性这里的AppShareData就是一个小例子:
AppSharedData.h:
@interface AppSharedData : NSObject
+(AppSharedData*)sharedInstance ;
@property (nonatomic) BOOL sharedBoolVariable ;
@end
AppSharedData.m:
@implementation AppSharedData
@synthesize sharedBoolVariable;
+(AppSharedData *) sharedInstance
{
static AppSharedData *_sharedInstance = nil;
static dispatch_once_t Token;
dispatch_once(&Token, ^{
_sharedInstance = [[AppSharedData alloc]init];
});
return _sharedInstance;
}
@end
然后如果你想在任何类中编辑变量的值,我将执行以下操作:
-(void)editMethod
{
AppSharedData * dataObject = [AppSharedData sharedInstance] ;
dataObject = YES ;
}
如果我想在任何类中检索变量的值,我会执行以下操作:
-(void)retrieveMethod
{
AppSharedData * dataObject = [AppSharedData sharedInstance] ;
BOOL someVariableInMyClass = [dataObject sharedBoolVariable] ;
}
当然AppShareData是一个单例类,所以它只在应用程序的生命周期中创建一次,所以:
答案 1 :(得分:0)
确定 -
首先,非常感谢阅读的人,尤其是那些回应的人。信息和例子很有启发性。
事实证明,至少在这种特殊情况下,答案是通过授权将旗帜传回,我已经在五个案件中的3个案件中使用过。我刚刚修改了委托方案以包含其他两个案例,一切都已落实到位。
长时间回应道歉 - 我不得不离开一个无关的母校。
再次感谢!