2016-09-06 2 views
1

Я пытаюсь получить этот стручок работает в моем проекте, и я застрял на понимании того, как этот бит работает:Реализация PageMenu/инициализация вид контроллеры раскадровки

https://github.com/uacaps/PageMenu

// Create variables for all view controllers you want to put in the 
// page menu, initialize them, and add each to the controller array. 
// (Can be any UIViewController subclass) 
// Make sure the title property of all view controllers is set 
// Example: 
var controller : UIViewController = UIViewController(nibName: "controllerNibName", bundle: nil) 
controller.title = "SAMPLE TITLE" 
controllerArray.append(controller) 

Я видел вещи, которые говорят, что мне нужно, чтобы инициализировать контроллер с раскадровки ID я поставил в раскадровке вид, но когда я пытаюсь сделать somethign как

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 
let vc =  storyboard.instantiateViewControllerWithIdentifier("someViewController") as! UIViewController 
self.presentViewController(vc, animated: true, completion: nil) 

но если честно, я ч ave не знаю, где/когда поставить это/если это даже то, что

Идея состоит в том, чтобы создать массив контроллеров представления для pagemenu для отображения с помощью панели вкладок вверху, но я не уверен, как именно чтобы сделать этот массив из представлений, которые я делаю в раскадровке.

ответ

2

Здесь вы идете. PageMenu - супер крутой и супер настраиваемый. Повеселись. Надеюсь это поможет. Дайте мне знать, если у вас возникнут другие проблемы.

var pageMenu: CAPSPageMenu? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    setupPages() 
}  

func setupPages() { 

    var controllerArray: [UIViewController] = [] 

    let firstVC = FirstViewController() 
    firstVC.title = "FirstOne" 

    let secondVC = SecondViewController() 
    secondVC.title = "Another One" 

    let thirdVC = ThirdViewController() 
    thirdVC.title = "And Another One" 

    controllerArray.append(firstVC) 
    controllerArray.append(secondVC) 
    controllerArray.append(thirdVC) 

    // a bunch of random customization 
    let parameters: [CAPSPageMenuOption] = [ 
     .ScrollMenuBackgroundColor(UIColor.quotesBackgroundColor()), 
     .ViewBackgroundColor(UIColor.quotesBackgroundColor()), 
     .SelectionIndicatorColor(UIColor.peterRiverColor()), 
     .BottomMenuHairlineColor(UIColor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)), 
     .MenuHeight(40.0), 
     .MenuItemWidth(100.0), 
     .CenterMenuItems(true), 
     .SelectedMenuItemLabelColor(UIColor.blueColor()) 
     ] 

    pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters) 

    self.view.addSubview(pageMenu!.view) 

} 
4

Модификация ответа выше, если вы используете раскадровку для создания экземпляра viewcontroller.

var pageMenu: CAPSPageMenu? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    setupPages() 
}  

func setupPages() { 
    let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 

    var controllerArray: [UIViewController] = [] 

    let firstVC = storyboard.instantiateViewControllerWithIdentifier("FirstViewControlleridentifier") as! FirstViewController 
    firstVC.title = "FirstOne" 

    let secondVC = storyboard.instantiateViewControllerWithIdentifier("SecondViewControlleridentifier") as! SecondViewController 
    secondVC.title = "Another One" 

    let thirdVC = storyboard.instantiateViewControllerWithIdentifier("ThirdViewControlleridentifier") as! ThirdViewController 
    thirdVC.title = "And Another One" 

    controllerArray.append(firstVC) 
    controllerArray.append(secondVC) 
    controllerArray.append(thirdVC) 

    // a bunch of random customization 
    let parameters: [CAPSPageMenuOption] = [ 
     .ScrollMenuBackgroundColor(UIColor.quotesBackgroundColor()), 
     .ViewBackgroundColor(UIColor.quotesBackgroundColor()), 
     .SelectionIndicatorColor(UIColor.peterRiverColor()), 
     .BottomMenuHairlineColor(UIColor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)), 
     .MenuHeight(40.0), 
     .MenuItemWidth(100.0), 
     .CenterMenuItems(true), 
     .SelectedMenuItemLabelColor(UIColor.blueColor()) 
     ] 

    pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters) 

    self.view.addSubview(pageMenu!.view) 

} 
0

Или вы можете использовать это репо. Это намного проще и легко понять для RnD. (Swift 3 код)

https://github.com/lakshikabhardwaj/LBViewControllerCollection

let mainViewController = CPPageMenuVC(nibName: "CPPageMenuVC", bundle: nil) 
    let pageMenuarray :[PageModal] = [PageModal(pageTitle: "Cat", pageVC: cpCatVC),PageModal(pageTitle: "Cow", pageVC: cowCX),PageModal(pageTitle: "Chat", pageVC: cpCatVC),PageModal(pageTitle: "ElephantElephant", pageVC: elephantVC)] 

    pageMenuVC.pageArray = pageMenuarray 
+0

https://github.com/lakshikabhardwaj/LBViewControllerCollection –

3

Обновленный Swift-3 Версия Дэвид

Podfile для Свифта-3
стручок 'PageMenu': мерзавец => ' https://github.com/orazz/PageMenu '

func setupPages() { 
    var controllerArray: [UIViewController] = [] 
    let firstVC = FirstVC() 
    firstVC.title = "First" 
    let secondVC = SecondVC() 
    secondVC.title = "Second" 
    let thirdVC = ThirdVC() 
    thirdVC.title = "Third" 

    controllerArray.append(firstVC) 
    controllerArray.append(secondVC) 
    controllerArray.append(thirdVC) 

    let parameters: [CAPSPageMenuOption] = [ 
     .scrollMenuBackgroundColor(.blue), 
     .viewBackgroundColor(.white), 
     .selectionIndicatorColor(.white), 
     .bottomMenuHairlineColor(.white), 
     .menuHeight(40.0), 
     .menuItemWidth(self.view.frame.width/3), 
     .centerMenuItems(true), 
     .selectedMenuItemLabelColor(.white), 
     .unselectedMenuItemLabelColor(.white), 
     .menuMargin(0.0) 
    ] 

    pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRect(x:0,y:64,width:self.view.frame.width ,height:self.view.frame.height) , pageMenuOptions: parameters) 
    self.view.addSubview(pageMenu!.view) 
} 
+0

Привет, я столкнулся с одной проблемой. Если я открою галерею из этого меню на основе меню, и если я вернусь, тогда меню страницы не появится. –

Смежные вопросы