2012-07-16 85 views
1

我正在使用X-code 4.3.2。 我创建了一个新的基于页面的应用程序项目。 然后,我在dataViewController类中创建一个UIButton,以便在单击该按钮时跳转到特定页面。为什么我不能跳转到UIPageView中的特定页面?

这里是我添加的简单代码。

//Create a button in dataViewController.h 
@property (strong, nonatomic) IBOutlet UIButton *btn; 

//Add button action 
-(IBAction)jump:(id)sender{ 
    RootViewController *root = [[RootViewController alloc]init]; 
    [root jump2page]; 
} 

在RootViewController的类

-(void)jump2page 
{ 
    DataViewController *targetViewController = [self.modelController viewControllerAtIndex:2 storyboard:self.storyboard]; 

    NSArray *viewControllers = [NSArray arrayWithObjects:targetViewController,nil]; 
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; 
} 

当我点击一个按钮的方法jump2page是call.It应该去页3月份当月, 但没有发生,当我点击它

我是否忘记或错过什么?

+0

这与分页滚动视图相同吗?在这种情况下,你可以设置currentPage属性 – bkbeachlabs 2012-07-16 03:35:42

+0

我不知道我只是创建一个新项目。 然后选择基于页面的应用程序。 最后,我添加按钮和它的动作。 – 2012-07-16 04:35:33

回答

0

我还有一个问题,搞清楚如何做一个页面跳转。而我所做的一切都是对我的无尽结束,甚至是聊天中提到的所有事情。使用你的方法,我能够看到虽然已经发生了对该函数的调用,并且它也从模态视图控制器中提取了数据。但它给了我一个空对象错误。何时设置视图。所以我放了一些更多的诊断信息,看看发生了什么,因为我已经将所有可能发生的事情拼凑在一起。我所投入的所有数据都很流畅。问题是故事板对象由于某种原因而为空,并且导致它在从故事板加载项目时失败,即使它知道要加载哪一个,只要它可以告诉故事板上没有任何内容,所以模态视图传回一个空的物体。然后它在主要的一个中坠毁。所以这导致我试图找出故事板对象为什么是空的。为什么它会提早释放?是我的第一个问题,我想我会试着制作一份它的副本,这样我们就可以使用那里仍然没有骰子的副本。然后一个想法在我们使用alloc和init的顶视图控制器中打了我(感谢上帝),这就是你如何创建一个新对象。是否可以这样做,而不是创建一个链接回到实际的根控制器,该命令创建了第二个根控制器,然后创建了第二个模态控制器,偏离了程序针对这些类类型的同一个类模板,并且正在传递函数调用对此。如果这样的话,新的根视图控制器就不会有第一个视图控制器。也不会有任何影响它的能力,因为它们是有效分离的对象。所以按照这个假设我意识到我又回到了重新开始,因为我不能使用你的方法。但是另一个上帝给了灵光一闪,如果我将一个指向实际根视图控制器的指针发送给顶视图控制器并将指针用于回调,那该怎么办?所以我尝试了这一点,并且终于看到了我的工作。

所以我落得这样做在id类型的顶视图控制器的.h这样

@property (weak,nonatomic) id homebase; 

设置一个新的属性,然后把这个在顶端视图控制器.m文件

@synthesize homebase; 

然后回到根视图控制器中,我修改了viewdidload以及旋转观察器的处理程序,以便在创建DataViewController的地方添加到此行中。

startingViewController.homebase=self; 

它将我在顶视图控制器中定义的属性设置为实际根视图控制器的地址。我所做的最后一件事是修改按钮单击事件

- (IBAction)pushedbutton:(UIButton *)sender 
{ 
    if (homebase==nil) 
    { 
     NSLog(@"no homebase"); 
     return; 
    } 
    [homebase jumpto:1]; 
} 

现在我发现,如果我使用的第一页上(并将其值设置到其他页面,然后1),那么它就会跳转到该页面。如果我在任何其他页面上使用它,它会吐出“没有家乡”,除非我旋转设备,然后它会工作。

我试图修改didFinishAnimating,看看我能在那里拍的参考之后完成加载,因为它是没有必要的按钮被点击,直到不能发生,直到这个函数运行后,却得到了进不去从那里我可以看到的财产。

后一些更多的工作,我发现这里的最后一步是修改的viewControllerAtIndex也采取了指针和存储,并递给回放上去之前对其进行设置数据视图控制器上。那么当它被一个空指针调用时,它将使用它存储的那个。在这两种类型的调用方式中,它有指针切换,然后一切都解决了。即使你翻页,现在不先旋转它。

相关问题