【问题标题】:iOS - Setting UISwitch on/off state on a Modal View ControlleriOS - 在模态视图控制器上设置 UISwitch 开/关状态
【发布时间】: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


【解决方案1】:

RoutingController 的视图未加载,因此 oscOneLFOOneSwitch 为 nil。

在 [self presentModalViewController:routingController animated:YES] 中查看加载

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    相关资源
    最近更新 更多