ios - How to implement only one table controller for all segment in pager? -
i implementing custom horizontal multiple segments table view controller content of each segment. how implement 1 controller segments, because view same segments data change. want pass current index of segment table view controller particular data. using capspagemenu.swift file -https://codeload.github.com/uacaps/pagemenu/zip/master?
here code-
class entrance_main_controller: uiviewcontroller { var pagemenu : capspagemenu? override func viewdidappear(animated: bool) { super.viewdidappear(animated) // mark: - ui setup self.title = "entrance exam" // initialize view controllers display , place in array var controllerarray : [uiviewcontroller] = [] let controller1 : entrance_content_viewcontroller = entrance_content_viewcontroller(nibname: "testtableviewcontroller", bundle: nil) controller1.title = "engineering" controllerarray.append(controller1) let controller2 : entrance_content_viewcontroller = entrance_content_viewcontroller(nibname: "testtableviewcontroller", bundle: nil) controller2.title = "medical" controllerarray.append(controller2) let controller3 : entrance_content_viewcontroller = entrance_content_viewcontroller(nibname: "testtableviewcontroller", bundle: nil) controller3.title = "management" controllerarray.append(controller3) // customize menu (optional) let parameters: [capspagemenuoption] = [ .scrollmenubackgroundcolor(uicolor(red: 30.0/255.0, green: 30.0/255.0, blue: 30.0/255.0, alpha: 1.0)), .viewbackgroundcolor(uicolor(red: 20.0/255.0, green: 20.0/255.0, blue: 20.0/255.0, alpha: 1.0)), .selectionindicatorcolor(uicolor.orangecolor()), .bottommenuhairlinecolor(uicolor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)), .menuitemfont(uifont(name: "helveticaneue", size: 13.0)!), .menuheight(40.0), .menuitemwidth(90.0), .centermenuitems(true) ] // initialize scroll menu pagemenu = capspagemenu(viewcontrollers: controllerarray, frame: cgrectmake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pagemenuoptions: parameters) self.addchildviewcontroller(pagemenu!) self.main_content_view.addsubview(pagemenu!.view) pagemenu!.didmovetoparentviewcontroller(self) } //here getting current index func get_current_page() -> int { let currentindex = pagemenu!.currentpageindex return currentindex; } // mark: - container view controller override func shouldautomaticallyforwardappearancemethods() -> bool { return true } override func shouldautomaticallyforwardrotationmethods() -> bool { return true } }
here using entrance_content_viewcontroller class segments.in controller calling get_current_page() method current page index.
class entrance_content_viewcontroller: uitableviewcontroller { override func viewdidload() { super.viewdidload() let entrance_main_controller = entrance_main_controller() let page = entrance_main_controller.get_current_page() print("page no\(page)") self.tableview.registernib(uinib(nibname: "entrancetableviewcell", bundle: nil), forcellreuseidentifier: "entrancetableviewcell") }
but getting error- fatal error: unexpectedly found nil while unwrapping optional value(lldb) please me solve problem. thank
the basic idea can implement is, maintain array of data each segment. use switch on segment index , per segment index assign tableview datasource.
the rough code should this:
switch(segmentindex) { case: 0 yourdatasourcearray = segment0_dataarray : : //like segments. }
Comments
Post a Comment