私のメインView Controllerの私のviewDidLoadメソッドでは、私はプログラム化されたセグメント化されたコントロールを作成し、それを私のナビゲーションコントロールのtitleViewに追加します。コントロールをプログラムでviewDidLoadに追加すると、他のメソッドからどのようにアクセスできますか?
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で答えを見つけることができませんでした。何か助けていただければ幸いです。本当にシンプルなものであれば、すみません。ありがとう
「スコープ」はgooglingしてみてください。これは基本的に変数の寿命です。 – 11684