2013-03-06 5 views
0

내 루트 인 UINavigationController의 UIToolbar에 버튼을 추가해야합니다. 특정 UIViewController 표시 될 때 나타나는 UIToolbar 싶습니다. 따라서, 내 UIViewController 하위 내있는 viewDidLoad 메서드에서이 코드를 배치 :UIToolbar에 UIBarButtonItem 추가하기

UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithTitle:@"Title" style:UIBarButtonItemStyleBordered target:self action:@selector(doSomething)]; 
item.width = 300; 
item.tintColor = [UIColor whiteColor]; 
UIBarButtonItem* item2 = [[UIBarButtonItem alloc] initWithTitle:@"Title2" style:UIBarButtonItemStyleBordered target:self action:@selector(doSomething)]; 

NSMutableArray* theItems = [self.navigationController.toolbar.items mutableCopy]; 
[theItems addObject:item]; 
[theItems addObject:item2]; 
[self.navigationController.toolbar setBarStyle:UIBarStyleBlackOpaque]; 
[self.navigationController setToolbarHidden:NO animated:YES]; 
[self.navigationController setToolbarItems:theItems animated:NO]; 
//self.navigationController.toolbarItems = theItems; // Tried both 

UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 20)]; 
label.text = @"kjhdkjhadsda"; 
[self.navigationController.toolbar addSubview:label]; 

이 내용은 올바른 위치에 UILabel의 표시, 다른 아무것도 표시되지 않습니다. UILabel은 저에게 쓸모가 없습니다. 단지 시험 일뿐입니다. 또한 배열에서 요소를 복사하는 대신 새 배열을 할당하려고했습니다. 누락 된 릴리즈를 무시하십시오. 이것은 테스트 코드 일뿐입니다.

나는 이것에 관해 많은 질문을 읽었지만 아무 대답도 작동하지 않는 것 같다. 이 코드에서 어떤 부분이 좋지 않을 수도 있습니다.

답변

2

당신이 기본 방법 navigationController.toolbar.items 항목이없는 NAS에 의해 라인

[self.navigationController.toolbar.items mutableCopy]; 

전무의 변경 가능한 복사본을 만들려고하는 것 같다 및 전무

반환

업데이트

방법 - (void) setToolbarItems : (NSArray *) toolbarItems animated : (BOOL) 애니메이션은 UINavigationController로 보낼 경우 아무 작업도 수행하지 않습니다. 네비게이션 컨트롤러가 관리하는 컨트롤러에 툴바 항목을 설정해야합니다. 이 줄은 버튼을 보이게 할 것입니다 :

[self setToolbarItems:theItems animated:NO]; 
+0

지정되었습니다. 새로운 것을 할당하려고했습니다. 어쩌면 저것을 언급하는 것이 분명하지 않은 것일 수도 있습니다, 미안합니다. –

+0

self.navigationController! = nil인지 확인 했습니까? 코드가 정상적으로 보이고 작동해야합니다. 또한 UIViewController의 메소드 [self setToolbarItems : theItems animated : NO]를 통해 도구 모음 항목을 설정하려고합니다. –

+0

Il self.navigationController was nil 툴바가 표시되고 레이블이 제대로 추가 될 것으로 기대하지 않았습니까? 난 그냥 UIViewController에서 setToolbarItems 메서드를 시도했지만, 그것도 존재 몰랐지만 버튼이 나타납니다. 다른 생각? 어쩌면 코드는 괜찮지 만 버튼을 표시하지 못하게하는 다른 것이있을 수 있습니까? –