在我的例子中,我使用ViewController作为PageViewController的父级。它也是PageViewController的dataSource,它提供了ContentViewController。
奇怪的是ContentViewController的-viewWill/DidAppear:
在它的父级之前被调用,这是我从控制台得到的:
[ContentViewController viewWillAppear:]
[ContentViewController viewDidAppear:]
[ViewController viewWillAppear:]
[PageViewController viewWillAppear:]
[ViewController viewDidAppear:]
[PageViewController viewDidAppear:]
以下是ViewController.m中的一些代码:
- (void)viewDidLoad {
[super viewDidLoad];
PageViewController *pageVC = [[PageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];;
pageVC.dataSource = self;
[pageVC setViewControllers:@[[self contentViewControllerWithIndex:0]]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO completion:nil];
pageVC.view.backgroundColor = [UIColor whiteColor];
pageVC.view.frame = self.view.bounds;
[self addChildViewController:pageVC];
[self.view addSubview:pageVC.view];
[pageVC didMoveToParentViewController:self];
}
-(ContentViewController *)contentViewControllerWithIndex:(NSInteger )index {
ContentViewController *vc = [[ContentViewController alloc] init];
vc.index = index;
return vc;
}
感谢。
答案 0 :(得分:0)
如果您逐行浏览
angular.module('myApp', ['ngCordova'])
。它实际上没有在PageViewController
之上添加它。因此ViewController
ViewWillAppear
不会在此处调用。代码:
PageViewController
PageViewController *pageVC = [[PageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
,它将分配[self contentViewControllerWithIndex:0]
,并在ContentViewController
上添加PageVC
,ViewWillAppear
称为ContentViewController
代码:
[pageVC setViewControllers:@[[self contentViewControllerWithIndex:0]]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO completion:nil];
PageVC
添加为childViewController
的{{1}}。因此,一旦ViewController
ViewWillAppear
被调用,那么只有它可以调用ViewController
的{{1}}并将其添加为其childView。代码:
ViewWillAppear