Как я могу вызвать действие из элемента панели вкладок? - PullRequest
1 голос
/ 22 марта 2012

У меня небольшая проблема с добавлением действий на UITabBarItems.Я не использую TabBarController, просто панель вкладок с элементами.

Я пробовал следующее в viewDidLoad:

[_myTabItem performSelectorOnMainThread:@selector(myfunction:) withObject:nil waitUntilDone:NO];

Это вызывает исключение Unrecognized Selector sent to instance.

Кто-нибудь имел дело с подобной проблемой?

Ответы [ 2 ]

0 голосов
/ 22 марта 2012
[_myTabItem performSelectorOnMainThread:@selector(myfunction:) withObject:nil waitUntilDone:NO];

из приведенной выше строки кода ясно, что myfunction имеет аргумент, но вы не передаете никакого аргумента, вы устанавливаете withObject:nil

Либо передайте обязательный параметр для myfunctionили просто используйте простой myfunction { }

0 голосов
/ 22 марта 2012

Я не уверен, что вы пытаетесь выполнить с помощью вызова performSelectorOnMainThread. Это просто отправляет элемент панели вкладок сообщение myfunction:, и, очевидно, элемент панели не отвечает на это.

Не думаю, что элементы панели вкладок должны вызывать действия. Они являются просто строительными блоками для панели вкладок, которая затем отправляет вам - делегату - все события, как описано в протоколе UITabBarDelegate. Протокол включает в себя метод tabBar:didSelectItem:, который позволяет реагировать на нажатие элемента панели вкладок. (Но в целом, не думайте о нажатых элементах панели вкладок, думайте о том, какие вкладки выбраны.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...