从另一个视图控制器
问题描述:
设置UIScrollView的位置,我尝试使用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我预先设定。这里没关系;此外,它反正正确地通过。
答
试试这个,如果你想改变你必须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];
}
答
您无法设置不可见的视图的属性。如果您使用的是iOS5 +,则可以在视图关闭完成块中完成偏移设置。
答
+0
这似乎是答案,但我无法弄清楚如何设置委托。几个月前,我做了类似的事情,我记得它非常简单。我将UIView的委托设置为另一个视图控制器,然后只调用[delegate method:argument];等方法。但我不记得我是如何做到的,而且我不知道如何在这种情况下应用它。 –
工程就像一个魅力! –