0

Я надеюсь, что это легкий один ...UIViewController навигации контроллера и представление модально

Я хочу повторить то, что происходит в приложении Контактов в прошивке. Приложение контактов использует навигационный контроллер для загрузки деталей контакта, отлично. Если вы затем отредактируете контакт, он изменит кнопки на навигационном контроллере, а также все поля на экране, но он все еще работает под навигационным контроллером.

Если вы создаете новый контакт из основного списка контактов, вы получите тот же экран редактирования в виде модального экрана, представленного поверх вашего списка. Таким образом, панель инструментов или что-то наверху содержит ваши кнопки, а что нет.

Как это сделать, не создавая 2 контроллера вида, содержащих одни и те же поля, но с одним из них с панелью инструментов?

Любое руководство очень ценится, спасибо заранее.

+1

создать свой viewController first.Have свойство BOOL в вашем контроллере просмотра что-то вроде этого 'shouldHideToolBar'. Включите его YES или NO, основываясь на том, с чего вы звоните. В вашем viewController попытайтесь написать код, чтобы скрыть шоу на основе этого флага в вашем методе 'viewControllerWillAppear()' – Priyatham51

ответ

1

я бы, вероятно, создать переменную экземпляра для обозначения режима, в котором контроллер находится в Возможно BOOL свойство как это:.

@property (nonatomic, assign, getter=isEditingMode) BOOL editingMode; 

В подобных случаях я обычно создают инициализатор, который принимает в качестве аргумента:

- (id)initWithEditingMode:(BOOL)editingMode; 

Тогда все, что вам нужно сделать, это использовать значение этого BOOL, чтобы решить, что делать с вашим пользовательским интерфейсом. Если вы используете xib-файл, включите панель инструментов, а затем в viewDidLoad скройте панель инструментов, если editMode - YES.

+0

Да, это сделает. Я не был уверен, есть ли другой способ, когда отображение и скрытие панели инструментов можно обрабатывать автоматически, но, я думаю, нет. Это потрясающе. – r0ddy

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