суббота, 27 ноября 2010 г.

Navigation Controller в iPhone - куда что надо прописывать

Можно долго ломать голову, почему приложение падает с неизвестной ошибкой, после того, как проставишь в InterfaceBuilder связи с переменными и/или методами контроллера. Голова только одна, ломать её не надо, надо нажать на иконку консоли:


Тогда можно увидеть ошибку: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key starQuickTest_btn.'
Эта ошибка означает, что программа не может найти обработчика к кнопке у контроллера, потому что использует не определенный вами контроллер,  а стандартный - UIViewController. Фишка в том, что класс со своим контроллером надо указать дважды для компоненты Navigation Controller:




Navigation Controller содержит в себе несколько элементов (как это видно из рисунка выше): Navigation Bar и View Controller. На панели навигация располагаются кнопки, а вью контроллер - собственно контроллер, управляющий текущим вью из стэка. Как минимум навигация должна содержать один контроллер: корневой вью контроллер. Поэтому именно этой компоненте мы и указываем MainMenuViewController - контроллер для вью, используемого при старте приложения.

Комментариев нет:

Отправить комментарий