美文网首页iOS程序员的业余沙龙iOS
iOS开发 如何通过视图(view)获取该视图所在的控制器(vi

iOS开发 如何通过视图(view)获取该视图所在的控制器(vi

作者: 嫌疑人zx | 来源:发表于2016-08-07 10:17 被阅读2923次

    方法函数

    /**
     *  返回当前视图的控制器
     */
    - (UIViewController *)viewController {
        for (UIView* next = [self superview]; next; next = next.superview) {
            UIResponder *nextResponder = [next nextResponder];
            if ([nextResponder isKindOfClass:[UIViewController class]]) {
                return (UIViewController *)nextResponder;
            }
        }
        return nil;
    }
    
    说明

    我在开发中,我将view和viewController分别写在不同的类中,当view中的滑动视图被点击时,我需要跳转到一个详细界面,XYRDetailViewController就是我需要跳转的详细界面,下面是详细的代码,你们主要是看方法函数里面的内容:
    我的应用代码:

    #pragma mark -SDCycleScrollViewDelegate
    /** 点击图片回调 */
    - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index{
        NSLog(@"%ld",(long)index);
        XYRDetailViewController *view=[[XYRDetailViewController alloc]init];
        [[self viewController].navigationController pushViewController:view animated:YES];
    }
    
    /**
     *  返回当前视图的控制器
     */
    - (UIViewController *)viewController {
        for (UIView* next = [self superview]; next; next = next.superview) {
            UIResponder *nextResponder = [next nextResponder];
            if ([nextResponder isKindOfClass:[UIViewController class]]) {
                return (UIViewController *)nextResponder;
            }
        }
        return nil;
    }
    

    (有什么看不懂的可以在评论给我说!)

    相关文章

      网友评论

      • Thinkdifferents:你好, 我将一个View 加载控制器上, 我想在控制器销毁的时候 View做一些事情, 但是这个操作, 我想屏蔽在View中 , 不让控制器 知道, 我怎么能监听到 控制器 被pop 或者 dismiss , 或者 dealloc 方法
        嫌疑人zx:@ThinkDifferents 直接写一个dealloc方法在view销毁的时候不会被调用吗?你可以试试,如果不被调用,那我就不知道了:smile:

      本文标题:iOS开发 如何通过视图(view)获取该视图所在的控制器(vi

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