i've main class called viewcontroller holding uiscrollview , inside viewcontroller i'm defining 3 other controllers holding uitableviews following :
let viewcontroller1 = storyboard?.instantiateviewcontrollerwithidentifier("viewcontroller1") as! viewcontroller1 let viewcontroller2 = storyboard?.instantiateviewcontrollerwithidentifier("viewcontroller2") as! viewcontroller2 let viewcontroller3 = storyboard?.instantiateviewcontrollerwithidentifier("viewcontroller3") as! viewcontroller3 and adding them scrollview.
i've implemented uiscrollviewdelegate after finishing scrolling refresh uitableview in viewcontroller.
func scrollviewdidenddecelerating(scrollview: uiscrollview) { let page = scrollview.contentoffset.x / self.view.frame.width } i got page number, how reload example if in viewcontroller2 has uitableview?
keep array of view controllers in viewcontroller:
var viewcontrollers = [uiviewcontroller]() then set them , add them array:
viewcontrollers.append(storyboard?.instantiateviewcontrollerwithidentifier("viewcontroller1") as! viewcontroller1) viewcontrollers.append(storyboard?.instantiateviewcontrollerwithidentifier("viewcontroller2") as! viewcontroller2) viewcontrollers.append(storyboard?.instantiateviewcontrollerwithidentifier("viewcontroller3") as! viewcontroller3) then can reference them in scroll view delegate method:
func scrollviewdidenddecelerating(scrollview: uiscrollview) { let page = int(floor(scrollview.contentoffset.x / self.view.frame.width)) if page < viewcontrollers.count { let viewcontroller = viewcontrollers[page] // whatever viewcontroller } }
Comments
Post a Comment