由于UIView沒有navigationController屬性,所以不能直接push操作
這里介紹兩種解決方案,第一種是常用的block:
1.在UIView的.h文件中定義一個(gè)bock屬性:@property (nonatomic, copy)void(^MoreSearchblock)();
2.在UIView的.m文件的要push操作的方法中執(zhí)行block:self.MoreSearchblock();
3.在這個(gè)view所在的controller中展開block:
__block typeof(self) weakSelf = self;//block防止循環(huán)引用
_searchDefultView.MoreSearchblock = ^{
/**
*? 這里聲明所要push的頁面(Mycontroller)
*/
[weakSelf.navigationController pushViewController:Mycontroller animated:YES];
};
第二種方法是直接在UIView中找到他所在的父視圖控制器庞萍,通過父視圖來執(zhí)行push操作:
id object = [self nextResponder];
while (![object isKindOfClass:[UIViewController class]] && object != nil) {
object = [object nextResponder];
}
UIViewController *superController = (UIViewController*)object;
/**
*? 這里聲明所要push的頁面(Mycontroller)
*/
[superController.navigationController pushViewController:Mycontroller animated:YES];