我创造&从另一个UITableViewController类(比如Table1)模态地呈现一个UITableViewController(比如Table2)类,就像这样..
-(void)createTable2 {
Table2Controller *table2Controller = [ [Table2Controller alloc] initWithStyle:UITableViewStyleGrouped];
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:table2Controller];
[self.navigationController presentModalViewController:nav animated:YES];
[nav release];
[table2Controller release];
}
因此将显示Table2。我想使用touchesBegan方法在Table2中重新签名键盘,因为我有一些UITextField作为单元格。我在表2的.h文件中包含了UITextFieldDelegate协议。
但我知道这些触摸开始的方法只适用于UIView&不是用UIViewController(我是对的吗?)。但我不知道在哪里&如何(我尝试在createTable2函数本身。它不起作用)添加一个UIView,然后在UIView中添加Table2来做事情......任何建议....
答案 0 :(得分:1)
您的表视图控制器具有表视图属性。您可以对表视图进行子类化,然后覆盖-touchesBegan:withEvent:
等方法。实例化自定义表视图并将此实例设置为view属性。
答案 1 :(得分:0)
UIViewController控制屏幕上显示的UIView和其他UI元素。由于UIResponder类它们是子类,因此所有这些元素都可以响应触摸。
使用Table2Controller覆盖touchesBegan方法来控制在此viewController中任何UI元素上发生的触摸事件。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[inputTV resignFirstResponder];
[super touchesBegan:touches withEvent:event];
}
注意始终调用超级方法声明,以便您的触摸可以在响应链上移动。