2015-08-20 5 views
3

Я заметил, что если у меня есть UIViewController в UINavigationController, что-то вроде:Swift: Невозможно добавить кнопки на панели навигации ABPersonViewController

let vc = UIViewController() 
let nav = UINavigationController() 
nav.viewControllers = [vc] 
self.presentViewController(nav, animated: true, completion: nil) 

Добавление кнопки на панели навигации так же просто, как: vc.navigationItem.leftBarButtonItem = ...

однако, если контроллер представления имеет тип ABPersonViewController, как это:

let person = ABPersonViewController() 
person.personViewDelegate = self 
person.displayedPerson = info 
let nav = UINavigationController() 
nav.viewControllers = [person] 
self.presentViewController(nav, animated: true, completion: nil) 

Я не могу добавить Аналогичным образом запустите навигационную панель; person.navigationItem.leftBarButtonItem = ..., как, кажется, here, ничего не делает.

Есть ли способ добавить кнопку в навигационную панель ABPersonViewController?

ответ

0

Вы не можете добавить кнопку на ABPersonViewController. Даже если вы можете добавить, он будет отклонен яблоком. Что вы можете сделать, так это сделать пользовательское представление, подобное ABPersonViewController, и изменить все, что вам нужно. (Мое личное мнение заключается в том, что ABPersonViewController в порядке, и у вас не должно быть проблем с этим).

+0

Я не решаюсь сделать пользовательский вид, поскольку, поскольку 'ABPersonViewController' не может быть подклассифицирован, мне придется написать его целиком - я бы скорее нашел обходное решение. – Randoms

0

Лучше всего создать файл View Controller для вашего ABPersonViewController и установить кнопку обычно в viewDidLoad.

т.е.

self.navigationItem.leftBarButtonItem = menuButton

Вы можете добавить кнопку на панель, не программно путем добавления элемента навигации в представлении, а затем добавить элемент панели кнопок.

+0

Я не могу создать файл для него, потому что я не могу наследовать его наследуемый класс VC - мне просто нужно создать экземпляр и представить его в любом случае. – Randoms

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