1

을 만들어 :에 NavigationItem을 추가하려면 어떻게 프로그래밍 내가 프로그래밍 방식으로 기존의 UIViewController에 UINavigationController가를 추가하려면이 코드를 사용하고 UINavigationController가

self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    let nav1 = UINavigationController() 
    let mainView = ReminderController(nibName: nil, bundle: nil) 
    nav1.viewControllers = [mainView] 
    self.window!.rootViewController = nav1 
    self.window?.makeKeyAndVisible() 

지금 내가 UINavigationController가 관리하는 내비게이션 바에 제목을 추가하고 싶지만 대부분이 오류를 얻을 :

pushNavigationItem를 호출 할 수 없습니다 : 애니메이션 :

: 직접 컨트롤러

내가 사용하는 코드가 관리하는 UINavigationBar에

let item = UINavigationItem(title: "Reminder") 
nav1.navigationBar.pushNavigationItem(item, animated: false) 

다른 방법을 시도해도 같은 오류가 발생했습니다. 그렇다면 NavController에 제목을 추가하는 방법은 무엇입니까?

네비게이션 바에는 지금이 바로 다음과 같습니다에서

enter image description here

답변

2

당신의 내비게이션 바는있는 navigationController에 의해 관리되는

스위프트에서

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered target:self action:@selector(flipView:)]; nav1.navigationBar.navigationItem.rightBarButtonItem = flipButton;

, 그래서 아이템을 직접 푸시 할 수는 없습니다. 대신 mainView에서 navigationItem을 설정하고 NavigationController가 막대에 밀어 넣으면 처리합니다.

documentation에 대해 UINavigationController를 확인하면 navigationController의 작동 방식을 더 잘 이해할 수 있다고 생각합니다.

은 그것에서이다 :

A navigation controller builds the contents of the navigation bar dynamically using the navigation item objects (instances of the UINavigationItem class) associated with the view controllers on the navigation stack.

+0

을 사용했습니다. 여기에 너무 엄격하게 들리면 @chandan reply가 완벽하게 유효합니다. 속성에는 setRightBarButtonItem setter도 있기 때문에 API 디자인에서 사용하기위한 것입니다. –

1

목표 - C

let barBtnVar = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: #selector(Nam1BarBtnKlkFnc(_:))) 
self.navigationItem.setRightBarButtonItem(barBtnVar, animated: true) 
+0

당신이 내가 뭘 잘못했는지 조금 설명해 주시겠습니까? – Lenny1357

+0

당신은 pushnavigationItem 메서드 – Chandan