質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1987閲覧

SwiftでPagingMenuControllerを使用してCurrentPageを出力したい

kapii

総合スコア12

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/11/19 09:04

SwiftでPagingMenuController(ver1.1.2)を使用して「ページをめくったときに」遷移先のページのCurrentPageを出力したいです。調べたところPagingMenuControllerのインスタンスをpagingMenuControllerとして、

Swift

1pagingMenuController.currentPage 2pagingMenuController.currentViewController.view.tag

を加えればいいと考えているのですが、以下のコードのどこに加えればよろしいでしょうか?
「ページをめくったときに」ページ番号を出力したいです。

Swift

1import UIKit 2import PagingMenuController 3class PagenewViewController: UIViewController { 4 private var genre_ids: [Int] = [0, 999, 1, 2, 4, 5, 6, 99] 5 private var genre_names: [String] = ["全体", "ランキング", "News", "芸能", "スポーツ", "アニメ", "ゲーム", "その他"] 6 override func viewDidAppear(animated: Bool) { 7 super.viewDidAppear(animated) 8 struct MenuItem: MenuItemViewCustomizable { 9 var displayMode: MenuItemDisplayMode { 10 let title = MenuItemText(text: name) 11 return .Text(title: title) 12 } 13 var name = ""; 14 } 15 struct MenuOptions: MenuViewCustomizable { 16 var itemsOptions: [MenuItemViewCustomizable] { 17 var menuItems: Array<MenuItemViewCustomizable> = [] 18 for genre_name in genre_names { 19 let item:MenuItemViewCustomizable = MenuItem(name: genre_name) 20 menuItems.append(item) 21 } 22 return menuItems 23 } 24 var menuDisplayMode: MenuDisplayMode { 25 return .SegmentedControl 26 // return .Standard(widthMode: .Flexible, centerItem: true, scrollingMode: .PagingEnabled) 27 } 28 var genre_names: [String] = [] 29 } 30 struct PagingMenuOptions: PagingMenuControllerCustomizable { 31 var componentType: ComponentType { 32 let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 33 var viewControllers: Array<ViewController> = [] 34 var key = 0 35 for genre_name: String in genre_names { 36 let viewController1 = storyboard.instantiateViewControllerWithIdentifier("introView") as! ViewController 37 // viewController1.setGenreId(genre_ids[key]) 38 // viewController1.setGenreName(genre_name) 39 viewController1.title = genre_name 40 viewControllers.append(viewController1) 41 key += 1 42 } 43 44 return .All(menuOptions: MenuOptions(genre_names:self.genre_names), pagingControllers: viewControllers) 45 } 46 var lazyLoadingPage: LazyLoadingPage { 47 48 return .Three 49 50 } 51 var genre_ids: [Int] = [] 52 var genre_names: [String] = [] 53 } 54 let options = PagingMenuOptions(genre_ids:self.genre_ids, genre_names:self.genre_names) 55 let pagingMenuController = PagingMenuController(options: options) 56 addChildViewController(pagingMenuController) 57 view.addSubview(pagingMenuController.view) 58 pagingMenuController.didMoveToParentViewController(self) 59 60 61 62 } 63 override func didReceiveMemoryWarning() { 64 super.didReceiveMemoryWarning() 65 } 66}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/11/19 13:07

どこに出力したいのでしょうか?また、「ページをめくったときに」というのは、めくり始めた時でしょうか?それともめくり終えた時でしょうか?
guest

回答1

0

pagingMenuController.currentPage
pagingMenuController.currentViewController.view.tag
は違うような・・・

予めStroyboadのViewControllerのStoryboard_Idに"introView"を設定して
introViewを持つControllerViewのプロパティにcurrentPageを追加。

genreってのをpageとして使うので、あえて変数名は変更しませんが・・。

private var genre_ids: [Int] = [0, 999, 1, 2, 4, 5, 6, 99]


private var genre_ids: [Int] = [1, 2, 3, 4, 5, 6, 7, 8]
に変更

// viewController1.setGenreId(genre_ids[key])

viewController1.currentPage = genre_ids[key];
に変更

投稿2016/11/19 09:54

編集2016/11/19 10:01
kaji

総合スコア648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問