私は他の SO の質問からいくつかのコードを取得しましたが、何かおかしなことをしているに違いありません。アプリは最初のビューから 3 番目のビューにジャンプします。私が達成しようとしているのは次のとおりです。
ViewController 1 Image 1 - 画像をロードします。ViewController 1 画像 2 にすばやくクロス ディゾルブします。
ViewController 1 Image 2 - ViewController 2 に反転します。
クロス ディゾルブが発生しますが、VC2 に移動します。私は一日のほとんどの間、これに悩まされてきました。バスタブに座っている間、助けを求める時が来ました.
これが私がやってきたことです:
- (void)viewDidLoad
{
NSLog(@"%s", __FUNCTION__);
[super viewDidLoad];
}
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
sleep (2);
[self transition1]; //showing image 1
}
- (void) transition1 {
NSLog(@"%s", __FUNCTION__);
/*
[UIView transitionFromView:firstView
toView:secondView
duration:3.0
options:UIViewAnimationOptionTransitionCrossDissolve
completion:^(BOOL finished) {
[firstView removeFromSuperview];
}];
*/
//this transition doesn't happen
UIImage * secondImage = [UIImage imageNamed:@"image2.png"];
[UIView transitionWithView:self.firstView
duration:5.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.imageView.image = secondImage;
} completion:NULL];
sleep (2);
[self transition2];
}
- (void) transition2 {
NSLog(@"%s", __FUNCTION__);
self.patterns = [[PatternViewController alloc] initWithNibName:@"PatternView_iPad" bundle:nil];
self.patterns.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:patterns animated:YES completion:nil];
}
助けてくれてありがとう。
アップデート
Moxy の提案に従って、コードを次のように更新しました。
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
[self performSelector:@selector(transition1)
withObject:nil
afterDelay:2.0f];
}
-(void)transition1
{
NSLog(@"%s", __FUNCTION__);
UIImage * secondImage = [UIImage imageNamed:@"image2.png"];
[UIView transitionWithView:self.firstView
duration:5.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.imageView.image = secondImage;
}
completion:^(BOOL finished){
[self performSelector:@selector(transition2)
withObject:nil
afterDelay:2.0f];
}];
}
-(void)transition2
{
NSLog(@"%s", __FUNCTION__);
self.patterns = [[PatternViewController alloc] initWithNibName:@"PatternView_iPad"
bundle:nil];
self.patterns.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:patterns
animated:YES
completion:nil];
}