Ios 如何从导航栏中删除UIPageControl?

Ios 如何从导航栏中删除UIPageControl?,ios,swift,uinavigationcontroller,uipagecontrol,Ios,Swift,Uinavigationcontroller,Uipagecontrol,我有一个显示不同类别的桌面视图。 点击其中一个类别,它将执行(推送)至显示相应子类别的PageViewController。 我决定在标题下的导航栏中显示UIPageControl,它可以正常工作,但回到上一个控制器,我无法删除这些点,因此它们也错误地出现在显示的VC中 下面是我如何实现自定义导航栏的: class MyClass { //MARK: - Outlets private var pageControl: UIPageControl? var rLNavItem: UINavi

我有一个显示不同类别的桌面视图。 点击其中一个类别,它将执行(推送)至显示相应子类别的PageViewController。 我决定在标题下的导航栏中显示UIPageControl,它可以正常工作,但回到上一个控制器,我无法删除这些点,因此它们也错误地出现在显示的VC中

下面是我如何实现自定义导航栏的:

class MyClass {

//MARK: - Outlets

private var pageControl: UIPageControl?
var rLNavItem: UINavigationItem?

//MARK: - Life cycle

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    let childView = self.navigationController?.childViewControllers.last
    childView?.navigationItem.rightBarButtonItem = // ...
    childView?.navigationItem.titleView = //...
    self.rLNavItem = childView?.navigationItem

    navigationController(self.navigationController!, willShowViewController: childView!, animated: true)
}

//MARK: - Navigation delegate

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {

    self.navigationController?.delegate = self        
    let index = (navigationController.viewControllers as NSArray).indexOfObject(viewController)
    self.pageControl?.currentPage = index

    let navBarSize = self.navigationController?.navigationBar.bounds.size        
    let origin = CGPointMake(((navBarSize?.width ?? 0)/2), ((navBarSize?.height ?? 0)/2) )
    self.pageControl = UIPageControl(frame: CGRectMake(origin.x, origin.y + 18, 0, 0))
    self.pageControl?.numberOfPages = 4
    self.pageControl?.currentPage = itemIndex
    self.pageControl?.currentPageIndicatorTintColor = UIColor.whiteColor()
    self.pageControl?.pageIndicatorTintColor = UIColor.grayColor()
    self.pageControl?.hidesForSinglePage = true
    self.navigationController?.navigationBar.addSubview(pageControl!)
 }
}

不幸的是,由于我的配置文件速率,我无法上传图片,但我的故事板是由一个TabBarController组成的,它为每个选项卡嵌入了一个NavigationController。 我尝试给pageControl一个标记值,然后在导航委托方法中删除视图,但没有成功

有什么建议吗


非常感谢

尝试在您的
视图中设置
self.pageControl=nil
将出现

我知道这不是一个很好的解决方案,但我发现导航委托方法被调用了两次。此时,我删除了self.navigationController?.delegate=self,并使用ViewWillEnglish中的tag属性删除PagaControl视图。这不起作用。不能将nil分配给页面控件。