2017-03-16 3 views
0

전자 상거래 앱을 사용 중입니다. 모든 페이지 바구니 버튼을 표시하고 싶습니다. 사용자가 모든 페이지를 클릭하여 제품 목록을 추가 한 다음 확인해 볼 수 있습니다.모든 페이지 탐색 메뉴 버튼을 표시하는 방법

내 탐색 모음 프로그램 만들기 : 현재

let viewController = DishViewController() 
    viewController.shopCategory = shopCategory 
    let navigationController = UINavigationController.init(rootViewController: viewController) 

    self.present(navigationController, animated: true, completion: nil) 

내가 바구니마다 페이지의 viewDidLoad() 보여 내를하고있는 중이 야 :

func setupNavigationBar(){ 

     // back button without title 
     self.navigationController?.navigationBar.topItem?.title = "" 

     //set titile 
     self.navigationItem.title = "Your Order" 

     let rightButton = UIBarButtonItem(image: #imageLiteral(resourceName: "busket"), style: .plain, target: nil, action: nil) 

     //show the Edit button item 
     self.navigationItem.rightBarButtonItem = rightButton 


    } 

답변

1

당신은 extension을 만들 수 있습니다 UIViewController으로 이동하여 해당 기능을 구현하십시오.

extension UIViewController { 
    func setupNavigationBar(title: String) { 
     // back button without title 
     self.navigationController?.navigationBar.topItem?.title = "" 

     //set titile 
     self.navigationItem.title = title 

     let rightButton = UIBarButtonItem(image: #imageLiteral(resourceName: "busket"), style: .plain, target: nil, action: nil) 

     //show the Edit button item 
     self.navigationItem.rightBarButtonItem = rightButton 
    } 
} 

하고 ViewControllers's ViewDidLoad 방법

은 단순히이 방법으로 문제가 해결

setupNavigationBar(title: "Your Order") 

희망을 호출합니다.

+0

의 버튼이있다. 일부 페이지에는 2 단추 (버스켓, 검색) 또는 1 단추 (버스켓)가 있습니다. 내가 뭘 할 수 있니? –

+1

버튼 유형을 매개 변수로 제목과 함께 전달하고 그에 따라 표시 할 논리를 만들면됩니다. 예 : func setupNavigationBar (title : String, buttons : [String]) {} 그런 다음 setupNavigationBar (제목 : "Your Order", 버튼 : [ "busket", "search"])를 호출하십시오. – Sree

0

BaseViewController를 만들고 View Controller를 상속하여 View Controller를 상속 할 수 있습니다. 당신의 BaseViewController에 당신은이 : 내가 일을하려고하면

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.navigationController?.navigationBar.topItem?.title = "" 

    //set titile 
    self.navigationItem.title = "Your Order" 

    let rightButton = UIBarButtonItem(image: #imageLiteral(resourceName: "busket"), style: .plain, target: nil, action: nil) 

    //show the Edit button item 
    self.navigationItem.rightBarButtonItem = rightButton 

} 

그런 다음 모든 뷰 컨트롤러만큼 그들은 super.viewDidLoad (전화로) 물론

관련 문제