我有一个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
(非原子的,强大的)
答案 0 :(得分:0)
这一行有很多错误:
[scrolObject ChangeToLastObject:1];
主要问题是,scrolObject
似乎是指向ScrollViewController
实例的指针。它可能是未初始化的。即使它被正确初始化,它的设计也很差,无法为视图控制器提供相互指示。
那么如何在视图控制器之间进行通信?这个问题有六个答案,包括这个问题:根本不做。而是让您的视图控制器写入同一模型并从中读取。
带有表格的视图控制器可以在选择表格时写入模型,并且ScrollViewController
可以读取模型并相应地设置它的滚动视图的内容偏移量{ {1}}。
该行的其他问题:viewWillAppear:
应该拼写为scrolObject
,scrollObject
一定要以小写ChangeToLastObject:
开头拼写,你通过了literal int = 1,但声明该方法采用C
。