数组值不检索外部方法initWithViewControllers

时间:2012-12-14 08:38:04

标签: iphone ipad

我正在使用此方法移动到页面视图控制器中的下一个视图控制器,因为我正在使用两种页面模式。但问题是,没有初始化的数组包含视图控制器。我已经花了很多时间在里面,不知道出了什么问题。 代码如下。

初始化方法。

-(id)initWithViewControllers:(NSMutableArray *)Controllers
{
self = [super initWithNibName:nil bundle:nil];
if(self)
{
    VControllers=[[NSMutableArray alloc]init];
    VControllers =  Controllers;

    pageController = [[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation: UIPageViewControllerNavigationOrientationHorizontal options:nil];

    self.pageController.view.frame = CGRectMake(22.0f, 32.0f, 708.0f, 945.0f);
    self.pageController.delegate = self;
    self.pageController.dataSource = self;
    [self.pageController setViewControllers:[NSArray arrayWithObject:[VControllers objectAtIndex:0] ] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished)
     {
     }];

    [self addChildViewController:self.pageController];
    [self.view addSubview:self.pageController.view];
    [self.pageController didMoveToParentViewController:self];

}
return self;
}

按钮操作

- (void)next1
{
ViewThree *three = [[ViewThree alloc]init];
ViewFour *four = [[ViewFour alloc]init];

viewControllrs = [NSMutableArray arrayWithObjects:three,four, nil];

//[self initWithViewControllers:VControllers];

NSLog(@"viewControllrs :%@",viewControllrs);

exampleViewController *currentViewController = [self.pageController.viewControllers objectAtIndex:0];

NSUInteger currentIndex = [self.viewControllrs indexOfObject:currentViewController];

if(currentIndex == 0 || currentIndex %2 == 0)
{
    UIViewController *nextViewController = [self pageViewController:self.pageController viewControllerAfterViewController:currentViewController];
    viewControllrs = [NSArray arrayWithObjects:currentViewController, nextViewController, nil];
}
else
{
    UIViewController *previousViewController = [self pageViewController:self.pageController viewControllerBeforeViewController:currentViewController];
    viewControllrs = [NSArray arrayWithObjects:previousViewController, currentViewController, nil];
}
//Now, set the viewControllers property of UIPageViewController
[self.pageController setViewControllers:viewControllrs direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];
}

这是移动到查看控制器的方法。

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
int index ;
index = [self.VControllers indexOfObject:viewController];
NSLog(@"index %d",index);
NSLog(@"view cont %d",[self.VControllers count]);

if (index + 1 < [self.VControllers count])
{
    return [self.VControllers objectAtIndex:index + 1];
}
return nil;
}

第一次它工作正常。但是当按钮动作时,在init方法中初始化的数组变为null。我试图将该数组值放在viewDidLoad中的另一个数组中,它也得到了但是当按钮方法工作时,数组变为nil。 任何人都可以指导,这里出了什么问题。提前谢谢。

0 个答案:

没有答案