2015-04-04 280 views
1

我正在使用OS X 10.10的Xcode 6。如何设置UISegmentedControl的初始选择

以我的UIViewController我有一个UISegmentedControl具有两个段的出口:

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

在作为使能和选择我标记段0的IB。

IB Attributes Inspector with Segment 0 Enebled and Selected

然而,

self.game.nCardGame = self.cardModeButton.selectedSegmentIndex 

返回nil。

试图以编程方式设置选择也没有帮助。

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

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

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

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

+0

你在viewController的viewDidLoad方法中设置self.game.nCardGame = self.cardModeButton.selectedSegmentIndex? – wildBillMunson 2015-04-04 12:55:31

+0

@wildBillMunson不,我不会。这是一款纸牌游戏,游戏已经开始。在翻转第一张牌之后,检查cardMode的选择。这意味着,在这个时间点,所有的类都已经被正确实例化并且变量被分配了。 – 2015-04-04 13:11:01

+0

什么是self.game.nCardGame? – 2015-04-04 13:12:32

回答

3

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

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