【发布时间】:2012-04-25 10:03:26
【问题描述】:
我在从 BOOL 设置 UISwitch 的状态时遇到问题。这可能很简单,所以如果有人可以提供帮助,我将不胜感激。这是我的代码,它不起作用,但它可能会更清楚。
RoutingController *routingController = [[RoutingController alloc] initWithNibName:@"RoutingController" bundle:nil];
routingController.routingDelegate = self;
if (audioController->oscOneLFObool == YES) {
routingController.oscOneLFOOneSwitch.on = YES;
} else {
routingController.oscOneLFOOneSwitch.on = NO;
}
routingController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:routingController animated:YES];
【问题讨论】:
-
你为什么要改变布尔状态?您只是想要显示某件是否开启的东西吗?
-
您是否收到任何编译器警告?您是否更新/更改 RoutingController 的
viewWillAppear/viewDidAppear中的开关状态?NSLog(@"%@", routingController. oscOneLFOOneSwitch);是否表明您正在与正确的实例交谈?最后但并非最不重要的一点是,您的案例决策没有意义,请将其替换为routingController.oscOneLFOOneSwitch.on = audioController->oscOneLFObool; -
还有一件事,你确定 audioController 是一个非目标 C 指针(结构,C++ 对象,...)?
-
您应该使用
if (audioController->oscOneLFObool) {而不是 `if (audioController->oscOneLFObool == YES) {'。如果它是 1 以外的值(由某些方法设置),那么即使使用第二种方法评估为 true,您的方法也不会起作用。
标签: ios boolean modalviewcontroller uiswitch