ios – 如何检查viewcontroller是否添加到堆栈中

前端之家收集整理的这篇文章主要介绍了ios – 如何检查viewcontroller是否添加到堆栈中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个视图控制器.我按下按钮使用下面的代码,从一个视图导航到另一个视图.
*let secondViewController = self.storyboard!.instantiateViewControllerWithIdentifier("NotificationController") as! NotificationController

self.navigationController!.pushViewController(secondViewController,animated: true)*

对于背面,我使用条形按钮上的条形按钮单击后面的代码.

self.navigationController?.popViewControllerAnimated(true)

所以我的问题是如果我从一个视图连续到另一个视图然后它添加到堆栈中.我想只显示另一个视图,当它已经添加到堆栈中以停止添加它时.它只添加一次.

解决方法

要检查导航堆栈是否包含特定类型的视图控制器,您可以使用:
if let viewControllers = self.navigationController?.viewControllers
{
    if viewControllers.contains(where: {
        return $0 is YourViewController
    })
    {
        //Write your code here
    }
}

要从导航堆栈中删除特定控制器,您需要更改导航堆栈.

例:

if var viewControllers = self.navigationController?.viewControllers
    {
        for controller in viewControllers
        {
            if controller is UIViewController
            {
                viewControllers.removeElement(controller)
                self.navigationController?.viewControllers = viewControllers
            }
        }
    }

猜你在找的iOS相关文章