我有一个ViewController,它提供了另一个视图控制器。当第二个被解雇时,我在第一个控制器中有一个布尔值isFromSecondView,设置为true。所以当我的第一个ViewController再次可见时,会调用viewWillAppear,我可以从那里移动控制器内的一些视图。此方法工作正常,viewWillAppear方法可以决定它是否来自第二个视图控制器。但我无法移动控制器内部的视图,即使它被调用。这个方法是我应该这样做的方式,还是有另一种方法可以在第二个控制器被解除时移动视图?
编辑,添加了视图移动方法:
- (void)moveViews
{
NSLog(@"moving view");
[UIView animateWithDuration:0.5
animations:^{
self.view.center = CGPointMake(160, 250);
//self.tableView.center = CGPointMake(160, -100);
self.addView.center = CGPointMake(160, 240);
}
completion:^(BOOL finished){}];
}
答案 0 :(得分:0)
dismissViewControllerAnimated
有一个可以使用的完成处理程序。一旦控制器完成解除,这将执行您的动画代码。当然,你需要对另一个控制器执行的处理程序进行更改,如果你使用它的话。
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"moving view");
[UIView animateWithDuration:0.5
animations:^{
self.view.center = CGPointMake(160, 250);
//self.tableView.center = CGPointMake(160, -100);
self.addView.center = CGPointMake(160, 240);
}
completion:^(BOOL finished){}];
}
答案 1 :(得分:0)
您可以使用viewWillLayoutSubviews(在控制器中)在需要时布局视图。
示例:
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
// self.oneView.center = ...
// self.anotherView.center = ...
}