Как поместить UITableViewController в UIView, чтобы штрихи стали работать в iPhone? - PullRequest
0 голосов
/ 18 июля 2011

Я создаю и модально представляю класс UITableViewController (скажем, Table2) из ​​другого класса UITableViewController (скажем, Table1), как этот ..

-(void)createTable2 {
     Table2Controller *table2Controller = [ [Table2Controller alloc] initWithStyle:UITableViewStyleGrouped];
     UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:table2Controller];
     [self.navigationController presentModalViewController:nav animated:YES];
     [nav release];
     [table2Controller release];
}

Таким образом, будет показана таблица2. Я хочу использовать метод touchesBegan для отставки клавиатуры в Table2, потому что у меня есть несколько UITextField в качестве ячеек. Я включил протокол UITextFieldDelegate в файл .h таблицы 2.

Но я знал, что этот метод touchesBegan будет работать только с UIView, а не с UIViewController (я прав?). Но я не знаю, где и как (я пытался в самой функции createTable2. Она не работает) добавить UIView, а затем добавить Table2 в этот UIView, чтобы что-то произошло ... Любой совет ....

Ответы [ 2 ]

1 голос
/ 18 июля 2011

Ваш контроллер табличного представления имеет свойство табличного представления.Вы можете создать подкласс табличного представления и затем переопределить методы, такие как -touchesBegan:withEvent:.Создайте свой собственный просмотр таблицы и установите для этого экземпляра свойство view.

0 голосов
/ 18 июля 2011

UIViewController контролирует UIView и другие элементы пользовательского интерфейса, представленные на экране.Все эти элементы могут реагировать на прикосновения благодаря классу UIResponder, который они подклассируют.

Используйте Table2Controller для переопределения метода touchesBegan для управления событиями касания, которые происходят с любым элементом пользовательского интерфейса в этом viewController.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
        [inputTV resignFirstResponder];
    [super touchesBegan:touches withEvent:event];
}

Примечание всегда вызывает объявление супер-метода, чтобыВаше прикосновение может перемещаться вверх по цепочке ответов.

...