在我的主视图控制器的 viewDidLoad 方法中,我以编程方式创建了一个分段控件,然后将其添加到我的导航控件的 titleView 中。
NSArray *seggieItems = [[NSArray alloc] initWithObjects:@"See Entire List",@"See Near Me", nil];
UISegmentedControl *seggie = [[UISegmentedControl alloc]initWithItems:seggieItems];
[seggie setSegmentedControlStyle:UISegmentedControlStyleBar];
[seggie setTintColor:[UIColor redColor]];
[seggie addTarget:self
action:@selector(seggieChanged:)
forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView = seggie;
但是,当我想从其他方法(例如 viewWillAppear)访问此分段控件时,我不能——它是一个未声明的标识符。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[seggie setSelectedSegmentIndex:0]; //this should always be 0 for this view controller viewDidLoad method
}
如果我使用的是 XIB,这将没有问题,因为我有一个可以在任何地方使用的 IBOutlet。我尝试为我的分段控件创建一个属性,但是实例变量隐藏了局部变量,所以这一定是错误的方法。
解决这个问题的最佳方法是什么?如果这是一个愚蠢的问题,我深表歉意——我对 iOS 还很陌生,目前大约读了几本书。我在 Google 或搜索 StackOverflow 上找不到答案。我会很感激任何帮助,如果这是我错过的非常简单的事情,我很抱歉。谢谢