同じViewControllerに2つのビューを持つ遷移クラスがあります。これは問題なく動作します。同じトランジションを2番目のViewControllerに適用したいと思います。例外は発生していませんが、機能していません...
現在の遷移コードは次のようになります。
カスタム遷移クラス
- (id)initWithBaseView:(UIView *)baseView firstView:(UIView *)firstView lastView:(UIView *)lastView
{
if((self = [super init])) {
self.view = baseView;
self.originalView = firstView;
self.nextView = lastView;
}
return self;
}
これは機能しているコードです:
シングルビューコントローラクラス
- (IBAction)doTransition:(id)sender
{
MyTransition *transition = [[MyTransition alloc] initWithBaseView:self.view
firstView:self.currentView
lastView:self.nextView];
[transition buildAnimation];
}
私はこのようなことを達成したいと思います:
- (IBAction)doTransition:(id)sender
{
NSLog(@"%s", __FUNCTION__);
MyTransition *transition = [[MyTransition alloc] initWithBaseView:self.view
firstView:self.currentView
lastView:secondView.lastView];
[transition buildAnimation];
}
- (void)viewDidLoad
{
NSLog(@"%s", __FUNCTION__);
[super viewDidLoad];
secondView = [[SecondViewController *) secondView initWithNibName:@"SecondViewController" bundle:nil];
}
ここで、FirstViewはfirstViewControllerにあり、nextViewは2番目のViewControllerにあります。
アップデート:
最初のVCを次のように更新しました。
- (void)viewDidLoad
{
NSLog(@"%s", __FUNCTION__);
[super viewDidLoad];
secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
}
- (IBAction)doTransition:(id)sender
{
NSLog(@"%s", __FUNCTION__);
MyTransition *transition = [[MyTransition alloc] initWithBaseView:self.view firstView:self.currentView lastView:secondView.view];
[transition buildAnimation];
}
2番目のVCをログに記録すると、呼び出されていないことがわかります。