由一个View(TableviewCell) push 到一个viewController

由于UIView没有navigationController属性,所以不能直接push操作

这里介绍两种解决方案,第一种是常用的block:

1.在UIView的.h文件中定义一个bock属性:@property (nonatomic, copy)void(^MoreSearchblock)();

2.在UIView的.m文件的要push操作的方法中执行block:self.MoreSearchblock();

3.在这个view所在的controller中展开block:

__block typeof(self) weakSelf = self;//block防止循环引用

_searchDefultView.MoreSearchblock = ^{

/**

*  这里声明所要push的页面(Mycontroller)

*/

[weakSelf.navigationController pushViewController:Mycontroller animated:YES];

};

第二种方法是直接在UIView中找到他所在的父视图控制器,通过父视图来执行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];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,542评论 1 14
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,143评论 1 6
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,469评论 2 4
  • 临睡之前,不经意间看到贴在墙上的这些歪歪扭扭的字,竟有些莫名的感动,若有所思,于是打着手电筒拍了下来,想留下这美好...
    媒人2016阅读 200评论 0 0
  • 满纸荒唐撰红楼,辛酸泪洒九曲终。 世人莫笑雪芹痴,其中滋味谁人懂。 一个是阆苑仙葩,一个是美玉无瑕,不知是有...
    落花_微雨阅读 296评论 2 2