通常使用self.navgationController是在Viewcontroller里面调用的,但是有的时候需要在view上也需要调用push或者present推出新的页面的方法,那么可以使用以下三种。
1、block方法。
2、代理方法。
3、获取该View所在的Viewcontroller。【这个也是我要说的方法】
//获取View所在的Viewcontroller方法
- (UIViewController*)viewController {
for(UIView* next = [selfsuperview]; next; next = next.superview) {
UIResponder*nextResponder = [nextnextResponder];
if([nextResponderisKindOfClass:[UIViewControllerclass]]) {
return(UIViewController*)nextResponder;
}
}
returnnil;
}
//使用方法:
[[selfviewController].navigationControllerpushViewController:[yourViewControllernew]animated:YES];
原文:http://blog.csdn.net/iosworker/article/details/51568326