Ios 从父类访问变量
我使用的是Ios 从父类访问变量,ios,swift,uinavigationcontroller,parent-child,uipageviewcontroller,Ios,Swift,Uinavigationcontroller,Parent Child,Uipageviewcontroller,我使用的是UIPageViewController 我的类-ViewController(包含所有代码,是数据源)运行PageItemController的实例 My UIPageControl(pControl)显示在ViewController的导航栏中 我想要以下代码: PageItemController override func viewDidAppear(){ let vController = the parent view controller // ViewCont
UIPageViewController
我的类-ViewController
(包含所有代码,是数据源)运行PageItemController
的实例
My UIPageControl(pControl
)显示在ViewController
的导航栏中
我想要以下代码:
PageItemController
override func viewDidAppear(){
let vController = the parent view controller // ViewController
vController.pControl.currentPage = itemIndex
}
这是如何实现的?在视图控制器上使用
parentViewController
属性:
if let parentVC = self.parentViewController as? MyParentViewController {
itemIndex = parentVC.pControl // set variable here
}
这有用吗
// 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.")
}
在我的情况下,如果让parentVC=self.parentViewController作为,我会说
?视图控制器
?因为我在ViewController
内部创建了PageItemController
的实例,所以这是否有效。。以上代码对我来说返回false