Viewでpushメソッドを呼び出す

980 ワード

方法1(最も簡単な)
         view       vc  
self.myHeaderView = [[myHeaderView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH,  self.myHeaderHeight)];
self.myHeaderView.vc = self;

myHeaderView.h      weak
@property(nonatomic,weak)UIViewController *vc;

 myHeaderView.m     

zhangHuInfoViewController *infoVC=[[zhangHuInfoViewController alloc]init];
[self.vc.navigationController pushViewController:infoVC animated:YES];

メソッド2(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:[zhangHuInfoViewController new] animated:YES];

メソッド3(blockまたはエージェント)