如何判断UIViewController是使用pop,dismiss返回到上级视图控制器

当我们自定义继承UIViewController视图控制器的基类视图控制器时,会新增返回到上级的视图控制器方法,于是就要区分,返回时使用 pop 的方法,还是使用dismiss 的方法了。

方法1

[html] view plain copy 在CODE上查看代码片派生到我的代码片

- (void)backPreviousController

{

if (self.presentingViewController)

{

[self dismissViewControllerAnimated:YES completion:nil];

}

else

{

[self.navigationController popViewControllerAnimated:YES];

}

}

方法2

[objc] view plain copy 在CODE上查看代码片派生到我的代码片

- (void)backPreviousController

{

if (self.navigationController.topViewController == self)

{

[self.navigationController popViewControllerAnimated:YES];

}

else

{

[self dismissViewControllerAnimated:YES completion:nil];

}

}

方法3

[objc] view plain copy 在CODE上查看代码片派生到我的代码片

- (void)backPreviousController

{

if ([self.navigationController.viewControllers.firstObject isEqual:self])

{

[self dismissViewControllerAnimated:YES completion:nil];

}

else

{

[self.navigationController popViewControllerAnimated:YES];

}

}

[html] view plain copy 在CODE上查看代码片派生到我的代码片

- (void)backPreviousController

{

if ([self.navigationController.viewControllers indexOfObject:self] == 0)

{

[self dismissViewControllerAnimated:YES completion:nil];

}

else

{

[self.navigationController popViewControllerAnimated:YES];

}

}

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

推荐阅读更多精彩内容

  • 刚开始接触IOS不久,尝试着翻译一些博客,积累技术,与大家共享。本篇内容讲解的是MagicRecord的使用,是对...
    困惑困惑困惑阅读 1,057评论 0 0
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,591评论 2 4
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,494评论 2 4
  • 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标...
    VincentHK阅读 5,440评论 3 44
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 2,521评论 2 50