Ich implementiere benutzerdefinierte horizontale mehrere Segmente mit Tabellenansicht Controller als Inhalt jedes Segments. Aber wie implementiert man nur einen Controller für alle Segmente, weil die Ansicht für alle Segmente gleich ist, aber nur Daten geändert werden. Ich möchte den aktuellen Index des Segments an den Tabellenansicht-Controller übergeben, um bestimmte Daten zu erhalten. Ich verwende CAPSPageMenu.swift Datei von - https://codeload.github.com/uacaps/PageMenu/zip/master?Wie implementiert man nur einen Tabellen-Controller für alle Segmente im Pager?
hier ist mein 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 to display and 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 I am 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
}
}
ich hier Entrance_Content_ViewController Klasse für alle segments.In dieses Controller Ich rufe get_current_page() Methode zum aktuellen Seite Index verwenden.
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")
}
Aber ich dies immer fehler- fataler Fehler: unerwartet gefunden null, während ein optionaler Wert Abwickeln (LLDB) Bitte helfen Sie mir, dieses Problem zu lösen. danke
wie kann ich in Tabelle View-Controller erhalten Segmentindex? – sachin
In Ihrem Fall wird es currentPageIndex sein. –
ja, aktuelle Seitenindex – sachin