方法一:
在这个自定义的UIVIew设置一个delegate,指向 A,然后在按钮事件使用delegate让A执行方法跳转B
在这个自定义的UIVIew—>B
B所载的界面—>A
在A里面定义一个算法如下:
方法二: 也可以发通知给UIViewController A去跳转到B
-(void)changeInterface:(NSString *)interfacename
{
Class class = NSClassFromString(interfacename);
UIViewController *con =[[class alloc] init];
if (con == self)
{
return ;
}
[self.navigationController pushViewController:con animated:YES];
}
{
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;
}
}