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