不幸的是,搜索並沒有幫助我...我有以下問題:我有三個UItableviews(ViewController1,ViewController2和Viewcontroller3),我嵌入一個簡單的PageViewController Screenshot of storyboard(我可以'不要在這裏插入任何圖片:/)。UIPageviewcontroller:從中間開始
爲了顯示這三個ViewControllers,我把它們放到了我的PageViewController.m(PageViewController的自定義類)的viewdidload中的一個數組中,所以我沒有使用ViewController作爲容器來將其他ViewController放入:
-(void)viewDidLoad
{
[super viewDidLoad];
self.delegate = self;
self.dataSource = self;
UIViewController *p1 = [self.storyboard
instantiateViewControllerWithIdentifier:@"TableView1"];
UIViewController *p2 = [self.storyboard
instantiateViewControllerWithIdentifier:@"TableView2"];
UIViewController *p3 = [self.storyboard
instantiateViewControllerWithIdentifier:@"TableView3"];
myViewControllers = @[p1,p2,p3];
- 向前去(方向:UIPageViewControllerNavigation**DirectionForward**
):
[self setViewControllers:@[p1]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO completion:nil];
NSLog(@"loaded!");
}
或挑最後就和倒着走(UIPageViewControllerNavigation**DirectionReverse**
):
[self setViewControllers:@[p3]
direction:UIPageViewControllerNavigationDirectionReverse
animated:NO completion:nil];
不過,我一直在試圖找出如何開始ViewController2
和哈弗e Viewcontroller1
在其左側和ViewController3
在右側(cp. Screenshot)
任何建議或代碼片斷將非常感激!
而這裏的全部代碼:
#import "StartScreenPageViewController.h"
@interface StartScreenPageViewController()
@end
@implementation StartScreenPageViewController
{
NSArray *myViewControllers;
}
-(void)viewDidLoad
{
[super viewDidLoad];
self.delegate = self;
self.dataSource = self;
UIViewController *p1 = [self.storyboard
instantiateViewControllerWithIdentifier:@"1"];
UIViewController *p2 = [self.storyboard
instantiateViewControllerWithIdentifier:@"2"];
UIViewController *p3 = [self.storyboard
instantiateViewControllerWithIdentifier:@"3"];
myViewControllers = @[p1,p2,p3];
[self setViewControllers:@[p1]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO completion:nil];
NSLog(@"loaded!");
}
-(UIViewController *)viewControllerAtIndex:(NSUInteger)index
{
return myViewControllers[index];
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger currentIndex = [myViewControllers indexOfObject:viewController];
--currentIndex;
currentIndex = currentIndex % (myViewControllers.count);
return [myViewControllers objectAtIndex:currentIndex];
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger currentIndex = [myViewControllers indexOfObject:viewController];
++currentIndex;
currentIndex = currentIndex % (myViewControllers.count);
return [myViewControllers objectAtIndex:currentIndex];
}
-(NSInteger)presentationCountForPageViewController:
(UIPageViewController *)pageViewController
{
return myViewControllers.count;
}
-(NSInteger)presentationIndexForPageViewController:
(UIPageViewController *)pageViewController
{
return 0;
}
@end
不錯的代碼片段。 – Shahar
發佈整個代碼是否更好?我是新手:/ – monkmonk
抱歉,我無法幫助解決這個問題(稍後會更詳細地討論它),只是想對帶有片段和所有內容的出色格式化問題說得很好。從我投票! – Tander