2010-04-14 4 views
0

Класс 1 имеет следующий код, который генерирует исключение -Недопустимое исключение аргумента - панель навигации, панель вкладок, UIView

- (IBAction) searchAllAction: (ID) отправитель {
AddDiagSearchController * поиск = [[ AddDiagSearchController alloc] initWithNibName: @ "DiagSearch" bundle: nil];
[self.navigationController pushViewController: поиск анимированных: ДА];
}

pushViewController часть генерирует следующее исключение - 2010-04-14 14:03:31.060 Nav[10314:207] *** -[UIView addTarget:action:forControlEvents:]: unrecognized selector sent to instance 0x3956a80

А класс я пытаюсь нажать имеет следующий код. Все соединения для IBOutlets были выполнены через интерфейс-конструктор. У него есть таблицаView, текстовая строка поиска и вкладка внизу, и я добавлю это в UINavigationController.

@interface AddDiagSearchController: UIViewController < UITableViewDataSource, UITableViewDelegate > {
UIBarButtonItem * QuickAdd;
UIBarButtonItem * searchAll;
UITextField * searchTxt;
}

@property (неатомической, сохраняют) IBOutlet UITextField * searchTxt;
- (IBAction) searchAllClicked: (id) отправитель;
- (IBAction) quickAddClicked: (id) отправитель;
- (IBAction) searchBtnClick;
- (IBAction) resignResponder: (id) отправитель;
@end

+0

Итак, в чем вопрос? –

ответ

1

Это не недопустимое исключение аргумента, это непризнанный селектор. Вы отправляете сообщение, предназначенное для UIControl, в UIView при нажатии вашего AddDiagSearchController, что подразумевает, что у вас, вероятно, есть перепутанный файл nib.

+0

Спасибо, удалили и воссоздали файл nib. Работает сейчас. –

0

Я не уверен, но, похоже, вопрос управления памятью. Я нашел это article on CocoaDev полезным при отладке таких проблем. Обратите внимание, что MallocStackLogging работает только на симуляторе. Я бы поспорил, что есть проблема с предыдущий вид или контроллер (он выпущен слишком рано), а не с нажатой.

Кстати, кажется, что вы просачиваете память на search при создании и не делаете release или autorelease.

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