メインのViewControllerの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にかなり慣れていないので、現在2冊の本の半分くらいです。Googleで回答が見つからなかったか、StackOverflowを検索しました。助けていただければ幸いです。これが本当に単純なもので、私が見逃しているものである場合は申し訳ありません。ありがとう