工作中很多時候會遇到在自定義的view中, 需要推出controller, 就留意總結了一些方法
. 比如
1.代理 初學者常用的方式, 缺點是太麻煩, 代碼多
2.通知 類似代理
3.獲取view所在的controller
4.其他
在需要跳轉的view中自定義方法
- (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所在的controller
//使用方法:
[[self viewController].navigationController pushViewController:[yourViewController new]animated:YES];
這里[self viewController]
相當于controller中的self,后面的用push 或者present就看具體情況了,又或者用segue推出
[[self viewController] performSegueWithIdentifier:@"xxxxxxSegue" sender:nil];
用segue,別忘記view所在的controller得向其他的controller拉線