1. 程式人生 > >iOS--- 如何獲得UIView的父控制器

iOS--- 如何獲得UIView的父控制器

這個方法用於在自定義的子檢視中,實現頁面的跳轉功能,這裡以TableViewController為例子,在自定義的cell中實現導航控制器的壓棧。

  1. - (UITableViewController *)viewController  
  2. {  
  3.     for (UIView *next = [self superview]; next; next = next.superview) {  
  4.         UIResponder *nextResponser = [next nextResponder];  
  5.         if ([nextResponser isKindOfClass
    :[UITableViewController class]]) {  
  6.             return (UITableViewController *)nextResponser;  
  7.         }  
  8.     }  
  9.     return nil;  
  10. }  
  11. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  
  12. {  
  13.     [self performSelector:@selector(unselectedCurrentRow) withObject
    :nil afterDelay:0.1];  
  14.     TestViewController *test = [[TestViewController alloc] init];  
  15.     UITableViewController *controller = [self viewController];  
  16.     [controller.navigationController pushViewController:test animated:YES];