BOOL在2个不同的viewcontrollers中

时间:2013-05-28 14:06:33

标签: ios

VC1.m在流程完成后包含以下代码。

if (self.iboard>0) {
             countIsNil = TRUE;
         } 

我想要另一个VC,说VC2.m包含以下代码。

- (void)viewDidLoad
{
    if (countIsNil)
    {
        countIsNil = FALSE;
        count.text=@"1";
        return;

    }
    [super viewDidLoad];
}

如何构建/管理BOOL countIsNil以使其有效?我怀疑答案涉及使用静态变量,但我没有这样的例子。

2 个答案:

答案 0 :(得分:2)

有两种解决方案:

  1. 您需要为此变量创建一个属性。
  2. 您可以使用NSUserDefaults类进行维护。
  3. 用VC1编写的NSUserDefaults示例:

    [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"countIsNil"]
        [[NSUserDefaults standardUserDefaults] synchronize];
    

    在VC2中写:

    - (void)viewDidLoad
    {
        if ([NSUserDefaults standardUserDefaults] valueForKey:@"countIsNil"])
        {
            countIsNil = FALSE;
            count.text=@"1";
            return;
        }
        [super viewDidLoad];
    }
    

答案 1 :(得分:-1)

全局采取你的BOOL变量我的意思是说把它放在AppDelegate文件中,设置它的属性并合成它, 现在,您可以从任何类传递此变量中的值,并从任何位置检索它。这里是示例:

 // AppDelegate.h
 @interface AppDelegate : UIResponder <UIApplicationDelegate>{

     BOOL countIsNil;
 }
 @property(readwrite)BOOL countIsNil;
 @end   

 // AppDelegate.m
 @implementation AppDelegate
 @synthesize countIsNil