我试图通过使用contentOffset来设置UIScrollView的位置:
- (void) navigateToTableViewPosition:(CGPoint)contentOffset {
NSLog(@"Position set method gets called...");
NSLog(@"%@", NSStringFromCGPoint(contentOffset));
[mainScrollView setContentOffset:contentOffset animated:YES];
}
我在解除它之前从另一个视图控制器调用此方法,并且所有内容都会检出。我正确地传递了参数,并且调用了该方法(使用NSLog检查它),但滚动视图不会移动...
有趣的是,当我从它所在的视图控制器调用此方法时,它工作正常。只有当我从另一个视图控制器调用它时,它才会停止工作。
仅供将来参考,这是调用方法:
MainViewController *mainView = [[MainViewController alloc] init];
[mainView navigateToTableViewPosition:contentOffset];
内容偏移是我事先设定的CGPoint。这没关系;此外,无论如何它都会正确传递。
答案 0 :(得分:2)
试试这个,当你想要改变时,你必须send notification
来自其他viewcontroller
。
[[NSNotificationCenter defaultCenter] postNotificationName:@"changepostion" object:NSStringFromCGPoint(CGPointMake(contentOffset.x, contentOffset.y))];
mainviewcontroller
中的
-(void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(navigateToTableViewPosition:) name:@"changepostion" object:nil];
}
- (void) navigateToTableViewPosition:(NSNotification *)notification
{
contentOffset =CGPointFromString([notification object]);
NSLog(@"Position set method gets called...");
NSLog(@"%@", NSStringFromCGPoint(contentOffset));
[mainScrollView setContentOffset:contentOffset animated:YES];
}
答案 1 :(得分:1)
您无法设置不可见的视图的属性。如果您使用的是iOS5 +,则可以在视图关闭完成块中的完成中实现偏移设置。
答案 2 :(得分:0)