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

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

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

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

1回答

1750閲覧

外部ライブラリ"PageMenuKit"のframework(フレームワーク)をimportしてビルドしても画面が真っ白で何も表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2019/08/24 04:53

編集2019/08/24 05:01

実現したいこと

外部ライブラリの"PageMenuKit"
https://github.com/magickworx/PageMenuKitSwift

を導入しようと試みています。

やってみたこと

1.上記のリンクから"PageMenuKit"をダウンロードし、
PageMenuKitSwift.xcodeprojをXcodeで開き、"PageMenuKitFatBinary"を指定し、Buildを実行。

2."PageMenuKit.framework"が生成されたので、これをFinder上で"PageMenuKit"を導入したいプロジェクトのフォルダの中の.xcodeprojがあるのと同じ階層に移動。

3."PageMenuKit"を導入したいプロジェクトの.xcodeprojをXcodeで開き、Embedded Binariesから"PageMenuKit.framework"を追加し、
上記リンクの"How to use PageMenuKit.framework"の部分に従って、"PageMenuKitDemo"内と同じように以下のコードを記述。

import

1import PageMenuKit 2 3class RootViewController: BaseViewController 4{ 5 var pageMenuController: PMKPageMenuController? = nil 6 7 override func setup() { 8 super.setup() 9 10 self.title = "PageMenuKit Frameworks" 11 } 12 13 override func didReceiveMemoryWarning() { 14 super.didReceiveMemoryWarning() 15 // Dispose of any resources that can be recreated. 16 } 17 18 override func loadView() { 19 super.loadView() 20 } 21 22 override func viewDidLoad() { 23 super.viewDidLoad() 24 25 var controllers: [UIViewController] = [] 26 let dateFormatter = DateFormatter() 27 for month in dateFormatter.monthSymbols { 28 let viewController: DataViewController = DataViewController() 29 viewController.title = month 30 controllers.append(viewController) 31 } 32 33 let statusBarHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height 34 /* 35 * Available menuStyles: 36 * .plain, .tab, .smart, .hacka, .ellipse, .web, .suite, .netlab, .nhk 37 * See PMKPageMenuItem.swift in PageMenuKit folder. 38 * "menuColors: []" means that we will use the default colors. 39 * "startIndex" can be set 1...controllers.count. 40 */ 41 pageMenuController = PMKPageMenuController(controllers: controllers, menuStyle: .smart, menuColors: [], startIndex: 1, topBarHeight: statusBarHeight) 42 // pageMenuController = PMKPageMenuController(controllers: controllers, menuStyle: .plain, menuColors: [.purple], startIndex: 8, topBarHeight: statusBarHeight) 43 pageMenuController?.delegate = self 44 self.addChild(pageMenuController!) 45 self.view.addSubview(pageMenuController!.view) 46 pageMenuController?.didMove(toParent: self) 47 } 48 49 override func viewWillAppear(_ animated: Bool) { 50 super.viewWillAppear(animated) 51 52 self.navigationController?.navigationBar.isHidden = false 53 } 54} 55 56extension RootViewController: PMKPageMenuControllerDelegate 57{ 58 func pageMenuController(_ pageMenuController: PMKPageMenuController, willMoveTo viewController: UIViewController, at menuIndex: Int) { 59 } 60 61 func pageMenuController(_ pageMenuController: PMKPageMenuController, didMoveTo viewController: UIViewController, at menuIndex: Int) { 62 } 63 64 func pageMenuController(_ pageMenuController: PMKPageMenuController, didPrepare menuItems: [PMKPageMenuItem]) { 65 // XXX: For .hacka style 66 var i: Int = 1 67 for item: PMKPageMenuItem in menuItems { 68 item.badgeValue = String(format: "%zd", i) 69 i += 1 70 } 71 } 72 73 func pageMenuController(_ pageMenuController: PMKPageMenuController, didSelect menuItem: PMKPageMenuItem, at menuIndex: Int) { 74 menuItem.badgeValue = nil // XXX: For .hacka style 75 } 76} 77 78コード

import

1 2class BaseViewController: UIViewController 3{ 4 required init(coder aDecoder: NSCoder) { 5 fatalError("NSCoding not supported") 6 } 7 8 init() { 9 super.init(nibName: nil, bundle: nil) 10 setup() 11 } 12 13 override func loadView() { 14 super.loadView() 15 16 self.edgesForExtendedLayout = [] 17 self.extendedLayoutIncludesOpaqueBars = true 18 19 self.view.backgroundColor = .white 20 self.view.autoresizesSubviews = true 21 self.view.autoresizingMask = [ .flexibleWidth, .flexibleHeight ] 22 } 23 24 func setup() { 25 // actual contents of init(). subclass can override this. 26 } 27 28 override func viewDidLoad() { 29 super.viewDidLoad() 30 // Do any additional setup after loading the view, typically from a nib. 31 } 32 33 override func didReceiveMemoryWarning() { 34 super.didReceiveMemoryWarning() 35 // Dispose of any resources that can be recreated. 36 } 37} 38 39コード

import

1 2class DataViewController: BaseViewController 3{ 4 public private(set) var textLabel: UILabel? = nil 5 6 override func setup() { 7 super.setup() 8 9 self.title = "Demo" 10 } 11 12 override func didReceiveMemoryWarning() { 13 super.didReceiveMemoryWarning() 14 // Dispose of any resources that can be recreated. 15 } 16 17 override func loadView() { 18 super.loadView() 19 20 let label = UILabel(frame: self.view.bounds) 21 label.backgroundColor = UIColor.hexColor(0xccccff) 22 label.font = UIFont.systemFont(ofSize: 64.0) 23 label.textAlignment = .center 24 label.adjustsFontSizeToFitWidth = true 25 self.view.addSubview(label) 26 self.textLabel = label 27 } 28 29 override func viewDidLoad() { 30 super.viewDidLoad() 31 } 32 33 override func viewWillAppear(_ animated: Bool) { 34 super.viewWillAppear(animated) 35 36 self.textLabel?.text = self.title 37 38 self.navigationController?.navigationBar.isHidden = true 39 } 40 41 override func viewWillDisappear(_ animated: Bool) { 42 super.viewWillDisappear(animated) 43 } 44} 45コード

import

1 2@UIApplicationMain 3class AppDelegate: UIResponder, UIApplicationDelegate 4{ 5 open private(set) var themeColor: UIColor? = nil 6 7 var window: UIWindow? 8 9 override init() { 10 super.init() 11 } 12 13 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 14 // Override point for customization after application launch. 15 // Create full-screen window 16 self.window = UIWindow(frame: UIScreen.main.bounds) 17 self.window!.backgroundColor = .white 18 19 // Make root view controller 20 self.window!.rootViewController = RootViewController() 21 22 // Show window 23 self.window!.makeKeyAndVisible() 24 25 return true 26 } 27 28 func applicationWillResignActive(_ application: UIApplication) { 29 /* 30 * Sent when the application is about to move from active to inactive state. 31 * This can occur for certain types of temporary interruptions (such as an 32 * incoming phone call or SMS message) or when the user quits 33 * the application and it begins the transition to the background state. 34 * Use this method to pause ongoing tasks, disable timers, and invalidate 35 * graphics rendering callbacks. Games should use this method to pause 36 * the game. 37 */ 38 } 39 40 func applicationDidEnterBackground(_ application: UIApplication) { 41 /* 42 * Use this method to release shared resources, save user data, 43 * invalidate timers, and store enough application state information 44 * to restore your application to its current state in case it is 45 * terminated later. 46 * If your application supports background execution, this method is called 47 * instead of applicationWillTerminate: when the user quits. 48 */ 49 } 50 51 func applicationWillEnterForeground(_ application: UIApplication) { 52 /* 53 * Called as part of the transition from the background to the active state; 54 * here you can undo many of the changes made on entering the background. 55 */ 56 } 57 58 func applicationDidBecomeActive(_ application: UIApplication) { 59 /* 60 * Restart any tasks that were paused (or not yet started) 61 * while the application was inactive. If the application was previously 62 * in the background, optionally refresh the user interface. 63 */ 64 } 65 66 func applicationWillTerminate(_ application: UIApplication) { 67 /* 68 * Called when the application is about to terminate. 69 * Save data if appropriate. See also applicationDidEnterBackground:. 70 */ 71 } 72} 73コード

発生している問題

上記の手順を踏んだ後に、ビルドすると、特にエラーが出ることもなく、
Build Succededと表示されてシュミレーターも起動しますが、真っ白な画面が表示されるだけでうまく導入できていないようです。

うまくいけば、
イメージ説明
こんな感じになるはずなのですが…。

ちなみに"PageMenuKit"を導入したいプロジェクトのナビゲーターはこんな感じになっています。
イメージ説明

storyboardはこんな感じです。

どなたか解決策を教えていただけると幸いです。

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

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

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

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

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

guest

回答1

0

あのー、すぐちゃんと表示されましたけど、、、

多少githubのページは省略されていますが、
おそらく、stroyboardで最初のviewのクラスをRootViewControllerに設定していないんじゃないですか??

基本がわかってないようなので、
まだPageMenuKitを利用してアプリを作成するのはまだまだ早いと思います。
すぐにコレはどうするんですか?次はコレどうするんですか?っていう質問が立つのは目に見えてます。

もっと基本的なことを勉強した方がいいと思います。
チュートリアルのようなHPで
swiftのいろんなviewの勉強をした方がいいと思います。
それとも本を買って、その通り全部通しでやってみるかですね。

投稿2019/08/25 01:41

hameji

総合スコア1380

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問