返回页面时contentOffset无法正常工作

时间:2014-08-16 17:05:58

标签: ios objective-c uiscrollview

我有一个UIScrollView&我的页面中有一个UIButton。当我点击一个我的按钮时,我会使用以下代码转到下一页:

SearchViewController *add =  [[SearchViewController alloc]initWithNibName:@"SearchViewController" bundle:nil];
[self presentViewController:add animated:YES completion:nil];

在下一页我有一个TableView。现在我想在单击任何单元格时更改contentOffset我的ScrollView。当我在ScrollViewController中调用一个方法时此方法正常工作但我的方法中的ScrollView为nil且contentOffset无效!为什么呢?

请指导我。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[scrolObject ChangeToLastObject:1];    
[self dismissViewControllerAnimated:YES completion:nil];
}

此方法位于ScrollViewController

- (void)ChangeToLastObject:(NSString*)idstation{
    myScrollView.contentOffset = CGPointMake(myScrollView.frame.size.width * (2), 0);

}

为什么topS方法中的myScrollView是nil ???

myScrollView是IBOutlet(非原子的,强大的)

1 个答案:

答案 0 :(得分:0)

这一行有很多错误:

[scrolObject ChangeToLastObject:1];

主要问题是,scrolObject似乎是指向ScrollViewController实例的指针。它可能是未初始化的。即使它被正确初始化,它的设计也很差,无法为视图控制器提供相互指示。

那么如何在视图控制器之间进行通信?这个问题有六个答案,包括这个问题:根本不做。而是让您的视图控制器写入同一模型并从中读取。

带有表格的视图控制器可以在选择表格时写入模型,并且ScrollViewController可以读取模型并相应地设置它的滚动视图的内容偏移量{ {1}}。

该行的其他问题:viewWillAppear:应该拼写为scrolObjectscrollObject一定要以小写ChangeToLastObject:开头拼写,你通过了literal int = 1,但声明该方法采用C