내 기본 View Controller의 내 viewDidLoad 메서드에서 프로그래밍 방식으로 분할 컨트롤을 만든 다음 내 탐색 컨트롤의 titleView에 추가합니다. 내가, 내가 할 수없는 등의 viewWillAppear 같은 다른 방법에서이 세그먼트 컨트롤을 액세스 할 때 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;
는하지만 - 그것은 선언되지 않은 식별자입니다. 내가 XIB를 사용하는 경우 내가 어디서든 사용할 수 있습니다 함께 IBOutlet이 것 때문에
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[seggie setSelectedSegmentIndex:0]; //this should always be 0 for this view controller viewDidLoad method
}
이 아무 문제 없을 것이다. Segmented 컨트롤에 대한 속성을 만들려고했으나 인스턴스 변수가 로컬 변수를 숨 겼기 때문에 잘못된 방식이어야합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 이것이 어리석은 질문이라면 사과드립니다. iOS에 상당히 익숙합니다. 현재 두 권의 책을 중도에두고 있습니다. Google 또는 StackOverflow 검색에서 답변을 찾을 수 없습니다. 어떤 도움을 주시면 고맙겠습니다. 그리고 이것이 정말 실종 된 것이라면 미안합니다. 감사합니다
'범위'에 대한 인터넷 검색을 시도하십시오. 이것은 기본적으로 변수의 수명입니다. – 11684