문제

세부 사항 viewController를 푸시하는 uinavigationcontroller가 있습니다. 이 세부 사항 viewController에서는 모든 uinavigationcontroller (iPhone OS3.0 이후)과 함께 제공되는 도구 모음을 사용하고 싶습니다.

따라서 세부 사항의 ViewDidload에서 uibarbuttonitem을 만듭니다. 배열에 추가하여 내비게이션 컨트롤러에 건네줍니다.

- (void) viewDidLoad {
    UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];  
    NSArray *items = [NSArray arrayWithObject: item];

    TestUIAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    UINavigationController *navController = delegate.navigationController;

    [navController setToolbarItems: items animated:NO];     
    [navController setToolbarHidden: NO animated: YES]; 
}

그러나 어떤 이유로 Uitoolbar가 화면에 애니메이션을받지 만 항목은 도구 모음에 추가되지 않습니다.

이것이 작동하기 위해 uitoolbar로해야 할 특정 순서가 있어야합니까?

추신 : 응용 프로그램은 (강제) 조경 모드에 있으며 NavigationController.View는 회전 변환이 있습니다. 그것과 관련이있을 수 있습니까?

도움이 되었습니까?

해결책

더 파고 들고 디버깅을했는데 수정하려는 나의 접근 방식이 navigationController 틀렸다. 대신 DetailsEviewController의 도구 모음 속성을 간단히 설정해야합니다.

그 후, 내 코드는 잘 작동했습니다.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];

        NSArray *myToolbarItems = [[NSArray alloc] initWithObjects: item, nil];         
        [self setToolbarItems: myToolbarItems];
        [myToolbarItems release];

    }
    return self;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top