Push之后Bool值没有改变

时间:2014-05-09 23:24:24

标签: ios objective-c boolean

我遇到BOOL的问题,当我尝试更改另一个视图BOOL的值但它无效时。

BOOL的声明:

@property (nonatomic, assign) BOOL vuesortie;

vuesortie中分配view

premierview *vcc = [self.storyboard instantiateViewControllerWithIdentifier:@"jeux"];
SWRevealViewController *revealController = self.revealViewController;
premierview *view;//  I'm really sorry not to be a robot and do shit

if ([cellchoistxt  isEqual: @"Déjà sortie"])
{
    [view setVuesortie:YES];
    [revealController pushFrontViewController:vcc animated:YES];       
} else if ([cellchoistxt isEqual: @"Prochaines sorties"]) {
    NSLog(@"////////////////////////////////////////////////");
    [view setVuesortie:NO];
    [revealController pushFrontViewController:vcc animated:YES];
}

pushFrontViewController之后加载视图时的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"%hhd" , vuesortie); //--> value = 0 in all cases
    ....
}

2 个答案:

答案 0 :(得分:1)

premierview *view;

未初始化。

您必须在之前初始化您的观点(并请使用其他类名称,例如“ PremierView ”):

在任何情况下,对于premier view,你的意思是你应该做的viewController vcc

[vcc setVuesortie:YES];

显然,类premierview包含属性:

@property (nonatomic, assign) BOOL vuesortie;

您必须学习 OOP 的概念,因为您必须明白,如果您想要指向实例viewController的属性,则必须在vcc中设置值对象

最后请使用正确的表示法,例如:

`PremierViewController` and not `premier view`

有两个原因:

  1. 不是UIView,而是UIViewController,所以正确使用ViewController而不是View来维持结束;

  2. 使用骆驼符号,因此请将每个单词的第一个字母大写。

答案 1 :(得分:0)

看起来你永远不会为view变量赋值。当您调用[view setVueSortie]时,视图对象为nil。