【问题标题】:How to set initial selection of UISegmentedControl如何设置 UISegmentedControl 的初始选择
【发布时间】:2015-04-04 21:06:32
【问题描述】:

我在 OS X 10.10 上使用 Xcode 6。

在我的 UIViewController 中,我有一个带有两个段的 UISegmentedControl 的 Outlet:

@property (strong, nonatomic) IBOutlet UISegmentedControl *cardModeButton;

在 IB 中,我将段 0 标记为启用并选中。

然而,

self.game.nCardGame = self.cardModeButton.selectedSegmentIndex

返回零。

尝试以编程方式设置选择也无济于事。

self.cardModeButton.selectedSegmentIndex = 0; // or
[self.cardModeButton setSelectedSegmentIndex:0];

在任何情况下,调试器都会显示该值未设置。

(lldb) po self.cardModeButton.selectedSegmentIndex
<nil>

触摸按钮按预期工作。 但是,在触摸任何按钮之前,应该有一个明确定义的初始状态。怎么做?

【问题讨论】:

  • 你是在viewController的viewDidLoad方法中设置self.game.nCardGame = self.cardModeButton.selectedSegmentIndex吗?
  • @wildBillMunson 不,我没有。这是一个纸牌游戏,游戏已经开始了。翻转第一张卡片后,检查 cardMode 的选择。这意味着,此时所有类都已正确实例化并分配了变量。
  • 什么是self.game.nCardGame?

标签: ios xcode6 interface-builder


【解决方案1】:

假设您的断点在viewDidLoad 或之后,我相信调试器可能会误导您。由于selectedSegmentIndex 是一个NSInteger,“po”(打印对象)命令应该 给你一个错误。它似乎取零值并将其视为 nil 指针。

使用“p (NSInteger)self.cardModeButton.selectedSegmentIndex”查看值。

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多