iOS開發 如何通過視圖(view)獲取該視圖所在的控制器(viewController)

方法函數

/**
 *  返回當前視圖的控制器
 */
- (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;
}

(有什么看不懂的可以在評論給我說!)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容