我有一个包含3个不同NavigationControllers的故事板:
aren't officially documented in the SDK docs
在我的第一个NavigationController的根控制器中,我在代码中添加了一个PageControl:
func addPageControlToNavigationBar() {
let navBarsize = navigationController!.navigationBar.bounds.size
let origin = CGPointMake(navBarsize.width/2, navBarsize.height/2)
navigationController?.delegate = self
pageControl = UIPageControl(frame: CGRectMake(navBarsize.width/2, navBarsize.height/2, 0, 0))
pageControl.numberOfPages = 2
pageControl.currentPage = 0
pageControl.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
let testView = UIView(frame: CGRectMake(origin.x, origin.y, 20, 20))
testView.backgroundColor = UIColor.yellowColor()
navigationController?.navigationBar.addSubview(pageControl)
}
当我对第二个NavigationController执行segue时,PageController也在那里。我只希望它出现在第一个ViewController中。
为什么会这样?
答案 0 :(得分:1)
在viewWillAppear
中添加页面控件
self.addPageControlToNavigationBar()
在viewWillDisappear
中删除页面控件,
pageControl.removeFromSuperview()
这样它就不会影响任何其他视图控制器