iOS开发技巧iOS进阶指南iOS Developer

iOS View上调用push或present跳转方法

2016-08-18  本文已影响997人  方同学哈

前言

在ios开发,我们经常需要push或者present推出一个新页面,一般是使用self.navgationController在Viewcontroller里面调用。但是很多时候,我们需要在view中做push或者present操作。这时候,有三种方法可以实现。
1.block
在view中设置block

typedef void (^backBlock)();
@property (nonatomic,copy) backBlock block;

然后在view中调用block。
最后在控制器实现block中的push或者present方法。
2.delegate
-设置view的delegate为控制器,然后在协议方法中push或者present。
3.获取该View所在的Viewcontroller

//获取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;
}
//使用方法:
[[self viewController].navigationController pushViewController:[yourViewController new]animated:YES];
上一篇下一篇

猜你喜欢

热点阅读