teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追加

2016/12/15 20:45

投稿

fromageblanc
fromageblanc

スコア2724

answer CHANGED
@@ -58,4 +58,24 @@
58
58
  }
59
59
  }
60
60
  }
61
- ```
61
+ ```
62
+ ### エラー①の補足
63
+ 「タイプ 'PageViewController'はプロトコル 'UIPageViewControllerDataSource'に準拠していません」 というのは実装を義務付けらているメソッドが存在しないという意味です。commandを押しながら`UIPageViewControllerDataSource`をクリックして定義を確認してみると上の2つは実装がマストなのがわかります(オプショナルでない)。今回のシグニチャというのは、ファンクション名および引数の型と戻り値の型や外部引数名の定義です。修正前はこの定義が`UIPageViewControllerDataSource`プロトコルで宣言されているものと違うので実装されていないとみなされエラーになっていました。
64
+
65
+ ```swift
66
+ public protocol UIPageViewControllerDataSource : NSObjectProtocol {
67
+
68
+ @available(iOS 5.0, *)
69
+ public func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
70
+
71
+ @available(iOS 5.0, *)
72
+ public func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?
73
+
74
+ @available(iOS 6.0, *)
75
+ optional public func presentationCount(for pageViewController: UIPageViewController) -> Int // The number of items reflected in the page indicator.
76
+
77
+ @available(iOS 6.0, *)
78
+ optional public func presentationIndex(for pageViewController: UIPageViewController) -> Int // The selected item reflected in the page indicator.
79
+ }
80
+
81
+ ```