2016-02-16 2 views
0

Я новичок в разработке Иос, я пытаюсь использовать следующий код, чтобы подтолкнуть текущий контроллер к следующему контроллеруКак добавить иконку назад к левой панели?

self.navigationController?.pushViewController(controller, animated: true) 

Однако, когда я перейти к следующему контроллеру, есть задний значок на левой bar (Да, это именно то, что я хочу). Проблема в том, что, поскольку я намереваюсь выполнить операцию размотки segue, мне нужно вручную добавить элемент кнопки панели в новый контроллер и перетащить управление на выход, чтобы выполнить действие разматывания. Хорошо, это нормально, дело в том, когда я его отлаживаю, значок назад отсутствует! Как сделать обратный значок снова? Я не хочу только простой текст, я хочу значок, чтобы привести пользователя, чтобы знать, что это кнопка назад

если я не назначить любую кнопку бар в новый контроллер, он будет показывать, как это

http://s17.postimg.org/duy58azxp/Screen_Shot_2016_02_16_at_2_13_27_PM.png

если я назначить бар кнопку элемент и присвоить титул обратно, значок будет отображаться в этом

http://s27.postimg.org/n8yngdqcx/Screen_Shot_2016_02_16_at_2_13_11_PM.png

+0

Вы скрываете свой значок назад в любом месте вашего кода –

+0

Я даже не код что-либо на этой кнопке. –

ответ

1

Вам не нужно ничего делать с кнопкой. Что вам нужно сделать, вместо этого заключается в следующем:

  1. Создайте новый класс и переопределить UINavigationControllerDelegate
  2. Добавить метод navigationController:animationControllerForOperation:fromViewController:toViewController:
  3. Внутри функции, упомянутой выше, добавить некоторую логику, как это:
func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? 
{ 
    if fromVC is YourOtherViewController && toVC is YourMainViewController { 
     return CustomAnimator() 
    } 

    return nil 
} 

Где CustomAnimator подкласс UIViewControllerAnimatedTransitioning

  1. Установите делегата навигационного контроллера в раскадровку.

Чтобы сделать шаг 4,

  1. Перетащите Object в верхней панели зрения (она должна идти между First Responder и Exit, например, так:
    Object position
  2. В инспекторе Атрибуты установите класс нового Object на все, что вы назвали файлом, созданным на первом этапе.
  3. Подключите выход delegate к вашему UINavigationController до Object
0

Запишите этот код в viewDidLoad().

navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "imagename"), style: UIBarButtonItemStyle.Plain, target: self, action: "leftbuttonclick") 
Смежные вопросы