ストーリーボードから構築されたシーンを使用して、アプリのウォークスルーを構築しようとしています。
そこで、pages と呼ばれる viewController の配列を作成します。
@interface PVCPagesViewController () {
NSMutableArray *pages;
}
@property (retain, nonatomic) NSMutableArray *pages;
@property (strong, nonatomic) UIPageViewController *pageController;
@end
viewDidLoad() で:
self.pages = [[NSMutableArray alloc] init];
UIViewController *page1 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page1"];
UIViewController *page2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page2"];
UIViewController *page3 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page3"];
UIViewController *page4 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page4"];
self.pages = [[NSMutableArray alloc] initWithObjects:page1, page2, page3, page4, nil];
しかし、viewControllerAfterViewController() の配列から別のビュー コントローラーをロードしようとしているとき:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSInteger index = [self.pages indexOfObject:viewController];
index++;
return [self.pages objectAtIndex:index];
}
有効なviewControllerを取得していて、配列に表示されていますが、objectAtIndexを試すとnilが返されますか?
(lldb) po self.pages
<__NSArrayM 0x170243cc0>(
<UIViewController: 0x13cd05370>,
<UIViewController: 0x13cd06030>,
<UIViewController: 0x13ce00000>,
<UIViewController: 0x13ce11b60>
)
(lldb) po viewController
<UIViewController: 0x13cd05370>
(lldb) po [self.pages indexOfObject:viewController];
<nil>
(lldb)
何を与える?前もって感謝します