2016-10-06 9 views
1

Я использую встроенный navigationController с Xcode8 и Swift3, я мог бы сделать некоторые изменения, такие как прозрачный фон и т.д., но не может скрыть backbutton или изменить его названиескрыть BackButton встроенный UINavigationController swift3

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
self.navigationController?.navigationBar.shadowImage = UIImage() 
self.navigationController?.navigationBar.isTranslucent = true 

Как я могу сделать BackButton обычай в навигационной панели?

благодаря

ответ

1

Вы могли бы написать этот код под viewWillAppear:

override func viewWillAppear(_ animated: Bool) 
{ 
    super.viewWillAppear(animated) 
    self.navigationItem.hidesBackButton = true 
} 

Если вы хотите добавить изображение, которое вы можете сделать:

let leftButton: UIBarButtonItem = UIBarButtonItem(image: buttonImage, style: UIBarButtonItemStyle.plain, target: self, action:#selector(ViewController.leftButtonPress(sender:))) 
navigationItem.leftBarButtonItem = leftButton 
+0

спасибо @Alessandro, он работает, но как я могу изменить название или добавить пользовательский образ? –

+0

Я обновил свой ответ, другими словами, вы можете настроить его с помощью UIBarButtonItem –

+0

спасибо, я пытался установить 'backButtonItem', что было неправильно –

0

Дизайн обычай UIButton и заменить по умолчанию NavigationBarBackBarButtonItem с ним.

func customBackButton() { 
    let leftButton = UIButton(type: UIButtonType.Custom) 
    leftButton.frame = CGRectMake(0, 0, 36, 36) 
    leftButton.clipsToBounds = true 
    leftButton.setTitle("yourTitle", forState: .Normal) //set back button title 
    leftButton.setImage(UIImage(named: "yourBackButton.png"), forState: .Normal) // add custom image 
    leftButton.addTarget(self, action: #selector(self.onBackButton_Clicked(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
    let leftBarButton = UIBarButtonItem() 
    leftBarButton.customView = leftButton 
    self.navigationItem.leftBarButtonItem = leftBarButton 
} 

func onBackButton_Clicked(sender: UIButton) 
{ 
    if(webview.canGoBack) { 
     webview.goBack() 
    } 
    else { 
     self.navigationController.popViewController(animated: true) 
    } 
} 
+0

первый это не работает, и это не swift3 синтаксис –

+0

Его Swift2.3. Вы можете преобразовать логику в соответствии с конкретным синтаксисом – Mathews

Смежные вопросы