UIScroll视图显示为零



我有一个带有UIPageViewController的示例项目。在我的第一页(pageviewcontroller:类名-step1Controller)中有一个"继续"按钮。当我点击该按钮时,我需要滚动第一页并显示第二页(而不是在这里滑动,点击按钮将更改页面)。

所以在点击按钮时,我调用了一个方法来进行自动滚动,但意外的是,它显示我的用户界面框架为零。??我该怎么解决这个问题??请帮助

我附上了项目的副本(它是一个小文件200kb)

我的代码结构类似

ViewController (click on "add" button open second viewcontroller)-->MainController (here i have uiscrollview and uipageviewcontroller connected to 6 pages).
When  i click "Continue" green button from first page it should auto scroll and sho the second page.

请帮忙。

Code on first page of pageview
- (IBAction)continueButton:(id)sender {
    Controller=[[MainController alloc]init];  
  //calling viewcontroller method were we created scrollview
    [Controller moveToNextPage:1];
}

in MainController
-(void)moveToNextPage:(int )page{
    NSLog(@"%@",str);
    self.pageControl.currentPage=2;
    NSLog(@"frame: (%0f %0f; %0f %0f)",
          self.scrollViewDrug.frame.origin.x, self.scrollViewDrug.frame.origin.y,
          self.scrollViewDrug.frame.size.width, self.scrollViewDrug.frame.size.height);
    CGRect newFrame=CGRectMake(320*page,self.scrollViewDrug.frame.origin.y,self.scrollViewDrug.frame.size.width, self.scrollViewDrug.frame.size.height);
    [self.scrollViewDrug scrollRectToVisible:newFrame  animated:YES];
}

代码链路

代码

您正在从MainController创建6个视图控制器,然后单击Continue按钮,您将再次创建MainController的对象,认为它将引用您创建这6个对象的同一对象。然而,事实并非如此,这个新的MainController是一个全新的对象,其组件仍未初始化。这就是为什么你的滚动视图和任何其他变量在这里都是nil的原因
解决方案:在子控制器中使用协议,创建委托并回调主控制器以进行页面转换。

最新更新