【问题标题】:Modifying NavigationBar in code modifies multiple NavigationBars in storyboard在代码中修改导航栏会修改情节提要中的多个导航栏
【发布时间】:2015-09-15 12:24:33
【问题描述】:

我有一个包含 3 个不同 NavigationControllers 的故事板:

在我的第一个 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 中。

为什么会这样?

【问题讨论】:

    标签: ios swift uinavigationcontroller


    【解决方案1】:

    viewWillAppear只需添加页面控件,

    self.addPageControlToNavigationBar()
    

    viewWillDisappear中只需去掉页面控件,

    pageControl.removeFromSuperview()
    

    这样它不会影响任何其他视图控制器

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 2020-09-04
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多