方法一:在这个自定义的UIVIew设置一个delegate,指向 A,然后在按钮事件使用delegate让A执行方法跳转B
在这个自定义的UIVIew—>B
B所载的界面—>A
在A里面定义一个算法如下:
-(void)changeInterface:(NSString *)interfacename
{
Class class = NSClassFromString(interfacename);
UIViewController *con =[[class alloc] init];
if (con == self)
{
return ;
}
[self.navigationController pushViewController:con animated:YES];
}
在点击事件发生的同时传递一个指针过去,例如:
pop.delegate = self;
在B视图中实现跳转
[_delegate changeInterface:@"ClassifyViewController"];
方法二:也可以发通知给UIViewController A去跳转到B
、、、、这个方法是最不好的也是最初级的
方法三:或者直接通过UIResponder获取view所在的controller中方法如下:
UIView* next = [self superview]
UIResponder *nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
{
return (UIViewController *)nextResponder;
}
拿到controller就可以操作咯!
- (id) traverseResponderChainForUIViewController {
id nextResponder = [self nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return nextResponder;
} else if ([nextResponder isKindOfClass:[UIView class]]) {
return [nextResponder traverseResponderChainForUIViewController];
} else {
return nil;
}
}