#objective-c #xcode #ios
#objective-c #xcode #iOS
Вопрос:
Я создал UINavigationController с UINavigationBar, у которого UIBarButtonItem находится в нужном положении ПОЛНОСТЬЮ в коде, файла IB / .xib нет.
Будучи новичком в XCode (v4) из C #, я пытаюсь понять, как перехватывать и обрабатывать событие нажатия кнопки на панели навигации.
В C # было бы событие click, которое вы бы переопределили, которое содержало бы код обработки события.
Я нашел несколько примеров, которые используют IB для подключения объектов пользовательского интерфейса, таких как кнопка, к методу в контроллере представления. Однако я не могу найти никаких примеров того, как добиться этого исключительно в коде.
Любые ссылки на идеи приветствуются.
Ответ №1:
В вашем методе viewDidLoad создайте UIBarButtonItem, используя один из следующих инициализаторов…
– initWithImage:style:target:action:
– initWithTitle:style:target:action:
Последние два параметра для инициализаторов позволяют вам указать объект для вызова при выполнении действия и метод для этого объекта для вызова, т. е.
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(methodForItem:)];
Ответ №2:
Вы захотите использовать Target / Action для элемента кнопки правой панели. Итак, после создания вашего экземпляра UIBarButtonItem
вы сделаете что-то вроде этого.
[barButtonItem addTarget:self action:@selector(methodThatShouldBeCalled:) forControlEvents:UIControlEventTouchUpInside];
Комментарии:
1. Если я не ошибаюсь, то то, что вы предлагаете здесь, будет работать для UIButton, а не для UIBarButtonItem.