2016-04-11 14 views
3

私のケースを解決するこの問題の解決策を見つけることができませんでした。私はページビューコントローラをプログラムでスワイプする2つのコードブロックを呼び出すことを検討しています。UIPageViewControllerプログラムでスワイプ

[self viewControllerAfterViewController:self]のように、最後のコードブロックを呼び出します。 viewDidLoad

[super viewDidLoad]; 
indexvalue = 1; 
NSLog(@"main intitated"); 

// Do any additional setup after loading the view, typically from a nib. 
self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"]; 
self.pageViewController.dataSource = self; 

ViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"]; 
Request *pvc; 
viewcontrollers =[NSArray arrayWithObjects:tvc, pvc, nil]; 

[self.pageViewController setViewControllers:viewcontrollers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 

self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 

[self addChildViewController:pageViewController]; 
[self.view addSubview:pageViewController.view]; 

[self.pageViewController didMoveToParentViewController:self]; 

コードで

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController 
{ 
    NSLog([NSString stringWithFormat:@"%i", indexvalue]); 

    if (indexvalue == 0 & check0 < 1) { 
     check0 = 1; 
     ViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"]; 
     indexvalue = 1; 
     return tvc; 
    } 
    else { 
     return nil; 
    } 
} 

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController 
{ 
    NSLog([NSString stringWithFormat:@"%i", indexvalue]); 

    if (indexvalue == 1 & check1 < 1) { 
     check1 = 1; 
     Request *pvc = [self.storyboard instantiateViewControllerWithIdentifier:@"Friends"]; 
     indexvalue = 0 ; 
     return pvc; 
    } 
    else { 
     return nil; 
    } 
} 

答えて

0
viewcontrollers =[NSArray arrayWithObjects:tvc, pvc, nil]; 

replace with 

viewControllers = @[tvc]; 
viewControllers= [self viewControllerAtIndex:0]; 

が、今私はからそのメソッドを呼び出しますどのようにこの方法

- (UIViewController *)viewControllerAtIndex:(NSUInteger)index 
{ 
    if (([self.pageTitles count] == 0) || (index >= [self.pageTitles count])) { 
     return nil; 
    } 

    if (index == 0) { 
    //first view 
    ViewController *pageContentViewController2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"]; 
    return pageContentViewController2; 

    } 
    //second view 

    Request *pageContentViewController3 = [self.storyboard instantiateViewControllerWithIdentifier:@"Request"]; 
    return pageContentViewController3; 
} 
+0

を追加スワイプジェスチャーによって呼び出される画面間をスワイプします"ibaction"? –

+0

あなたの質問は、あなたの質問を問題にする必要はありません。 –

+0

- (IBAction)startWalkthrough:(id)sender { ViewController * startingViewController = [self viewControllerAtIndex:0]; NSArray * viewControllers = @ [startingViewController]; [self.pageViewController setViewController:viewControllers direction:UIPageViewControllerNavigationDirectionReverse animated:いいえ完了:なし]; } –

関連する問題