美文网首页
view中跳转控制器

view中跳转控制器

作者: 码修 | 来源:发表于2017-04-13 18:48 被阅读30次

    通常情况一般都是由view中的触发者(button)之类的事件,触发block,在控制器中处理。但是其实是可以在view中处理控制器跳转的。
    在controller不需要回传数据的时候,可以在view中这样写,能够减少控制器中的代码。
    大概思路:点击控件始终是加载在控制器上的,不断取superview,取到控制器时,这个控制器就是我们事件的响应者。

    /// 处理事件

    - (void)tapAction {
        SearchDestinationVC *controller = [[SearchDestinationVC alloc]init];
        controller.hidesBottomBarWhenPushed = YES ;
        //通过找到的控制器进行跳转
        [[self viewController].navigationController pushViewController:controller animated:YES] ;
        
    }
    
    

    找到view的控制器:返回view所加载在的控制器

    ///  找到view的控制器:返回view所加载在的控制器
    - (UIViewController *)viewController {
        for (UIView * superView = [self superview]; superView; superView = superView.superview) {
            UIResponder *nextResponder = [superView nextResponder];
            if ([nextResponder isKindOfClass:[UIViewController class]]) {
                return (UIViewController *)nextResponder;
            }
        }
        return nil;
    }
    

    相关文章

      网友评论

          本文标题:view中跳转控制器

          本文链接:https://www.haomeiwen.com/subject/dgobattx.html