【问题标题】:Accessing variables from Parent Class从父类访问变量
【发布时间】:2015-07-29 14:02:01
【问题描述】:

我正在使用UIPageViewController

My Class - ViewController(包含所有代码并且是数据源)运行 PageItemController 的实例。

我的 UIPageControl (pControl) 显示在 ViewController 的导航栏中。

我想要下面的代码:

PageItemController

override func viewDidAppear(){

    let vController = the parent view controller // ViewController
    vController.pControl.currentPage = itemIndex

}

这是如何实现的?

【问题讨论】:

    标签: ios swift uinavigationcontroller parent-child uipageviewcontroller


    【解决方案1】:

    在您的视图控制器上使用parentViewController 属性:

    if let parentVC = self.parentViewController as? MyParentViewController {
        itemIndex = parentVC.pControl // set variable here
    }
    

    【讨论】:

    • 在我的情况下我会说if let parentVC = self.parentViewController as? ViewController 吗?这是因为我在ViewController 中创建了PageItemController 的实例吗? .. 上面的代码为我返回 false
    【解决方案2】:

    这有帮助吗?

        // Get the Navigation Controller
        let navControl = self.navigationController
    
        // Get all the pages in the hierarchy
        let allPages = navControl!.viewControllers
    
        // Get the current page
        let thisPageViewController = navControl!.visibleViewController
    
        // Work out which is the current page.
        // I'm sure someone else will have a more elgant way of doing this.
        let arrayOfPages : NSArray = NSArray(array: allPages)
        let thisPageIndex = arrayOfPages.indexOfObject(thisPageViewController)
    
        // Now get the parent and set a value in it.
        if thisPageIndex > 0 {
            let parentPageIndex = thisPageIndex - 1
            let parentView: AnyObject = arrayOfPages[parentPageIndex]
            parentView.pControl.currentPage = thisPageIndex
        } else {
            println("We are at the top and had to stop.")
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 2011-02-21
      • 1970-01-01
      相关资源
      最近更新 更多