不知道你是否仍在爲此工作,但無論如何這裏。要設置UIPageViewController,你可以使用下面的教程和兩個問題。
http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/
How to implement UIPageViewController that utilizes multiple ViewControllers
How to add UIBarButtonItem to NavigationBar while using UIPageViewController
最後一個環節具體來說,涉及取決於你正在查看的內容設置的導航欄的內容。
的關鍵是在你的UIPageViewController內容視圖控制器的.h文件中創建一個UINavigationItem屬性,這意味着那些/一個都顯示無論是你的顯示。
從我的代碼在FirstViewController.h
SecondViewController.h
和ThirdViewController.h
@property (strong, nonatomic) UINavigationItem *navItem;
在你上面的第二和第三個環節會看到一個主從應用程序(它使用導航控制器)的故事板佈局。 UIPageViewControllerDataSource
是DetailViewController
。與pageViewController
相關的三個頁面是我的內容視圖控制器。
在DetailViewController.m你必須從某個地方實例化contentViewControllers。此時,您將DetailViewControllers navigationItem標識傳遞給內容視圖控制器。以下是我如何使用UIPageViewController
的代理方法實例化我的內容視圖控制器。
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
NSString * ident = viewController.restorationIdentifier;
NSUInteger index = [_vc indexOfObject:ident];
if ((index == 0) || (index == NSNotFound)) {
return nil;
}
index--;
if (index == 0) {
return [self controllerAtIndex:index];
}else if (index == 1){
return [self secondControllerAtIndex:index];
}else if (index == 2){
return [self thirdControllerAtIndex:index];
}else{
return nil;
}
}
委託方法調用下面的方法。它幾乎直接來自教程鏈接,僅做了一些修改。
-(FirstController *)controllerAtIndex:(NSUInteger)index
{
FirstController *fvc = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstPageController"];
fvc.imageFile = self.pageImages[index];
fvc.titleText = self.pageTitles[index];
fvc.pageIndex = index;
fvc.navItem = self.navigationItem;
return fvc;
}
注意,屬性傳遞到包括self.navigationItem
視圖控制器。通過它可以確保您可以更改導航條項目。
然後在您的內容視圖控制器的viewDidAppear
方法,你可以簡單地這樣設置導航欄上的標題。
navItem.navigationItem.title = @"Whatever you want the title to be";
它使用viewDidAppear
因爲viewDidLoad
不叫每一個出現在屏幕上的時間是很重要的。我相信UIPageViewController可以在查看任何內容之前緩存頁面,並且可以保存系統在每次導航時都不必加載頁面。
如果您使用的是單一視圖控制器,所有你喜歡的網頁教程不,你將不得不使用索引屬性來知道如何設置標題爲。
希望這會有所幫助!
其實,你是如何在導航欄中找到點的? :) –