我想检查某个UIViewController
是否以模态方式呈现。除此之外,如果它在TabBar中以模态方式呈现,我想有所不同。我在this link下找到了以下extension
:
extension UIViewController {
var isModal: Bool {
if let index = navigationController?.viewControllers.index(of: self), index > 0 {
return false
} else if presentingViewController != nil {
return true
} else if navigationController?.presentingViewController?.presentedViewController == navigationController {
return true
} else if tabBarController?.presentingViewController is UITabBarController {
return true
} else {
return false
}
}
}
但是,这个extension
在TabBar中显示的UIViewController
或标签栏的外侧没有差异(我得到相同的结果)。删除最后一个else if
仍然会返回相同的Boolean
(都返回true
),因此删除倒数第二个(都返回false
)。
我想添加一个"返回"按钮,如果它出现在标签栏之外。
编辑:
我有一个标签栏,用户可以在其下打开自己的个人资料。如果点击该tabbaritem,则用户可以看到他自己的个人资料(通过tabbar显示)。但是,他也可以通过在另一个tabbaritem中点击他自己的用户名来查看他自己的个人资料(例如在主页Feed中)。在后一种情况下(因为在他自己的个人资料之前有另一个视图控制器)我希望用户能够再次返回到主页(这在前者中是不可能的)。