我的目标是使用自定义动画制作自定义 segue,如下所示:我希望 segue 使用来自 destinationViewController 的按钮覆盖 sourceViewController 中的按钮,其效果类似于导航控制器的推送效果,即新按钮应该将旧按钮从右向左推开。
我已经能够根据需要使旧按钮(来自 sourceViewController)移开:
[UIView animateWithDuration:1.0 animations:^{
// set the target frame for animated view
sourceViewController.optionsButton.frame = leftButtonTargetFrame;
} completion:^(BOOL finished) {
[navigationController pushViewController:destinationViewController animated:NO];
// reset the button's frame back to its original frame
sourceViewController.optionsButton.frame = leftButtonInitFrame;
}];
但是我正在努力使新按钮(来自destinationViewController)移入。原因是我无法访问destinationViewController 的视图元素:在执行segue 时,它们没有被实例化。而且我无法为未实例化的按钮设置动画。
那么如何用destinationViewController 中的按钮替换sourceViewController 中的按钮呢?