カスタム セグエを実行してゲーム メニューを表示する方法を学習しようとしています。Web で検索すると、カスタム セグエ クラスを作成してオーバーライド-(void) perform
し、そのメソッドで目的地を指定する必要があるようです。 vc とソース vc。その場所などを確立します。これは、インターネットで見たコードの 1 つです。
@implementation FromTopReplaceSegue
-(void)perform{
UIViewController *dst = [self destinationViewController];
UIViewController *src = [self sourceViewController];
[dst viewWillAppear:NO];
[dst viewDidAppear:NO];
[src.view addSubview:dst.view];
CGRect original = dst.view.frame;
dst.view.frame = CGRectMake(dst.view.frame.origin.x, 0-dst.view.frame.size.height, dst.view.frame.size.width, dst.view.frame.size.height);
[UIView beginAnimations:nil context:nil];
dst.view.frame = CGRectMake(original.origin.x, original.origin.y, original.size.height, original.size.width);
[UIView commitAnimations];
[self performSelector:@selector(animationDone:) withObject:dst afterDelay:0.2f];
}
- (void)animationDone:(id)vc{
UIViewController *dst = (UIViewController*)vc;
UINavigationController *nav = [[self sourceViewController] navigationController];
[nav popViewControllerAnimated:NO];
[nav pushViewController:dst animated:NO];
}
@end
これは、上から下に向かって現れるセグエを作ることになっていると思います。しかし、ソースと宛先のVCとは何か、コードが言う部分にもいくつか質問がありますdst.view.fram=CGRectMake(dst.view.frame.origin.x, 0-dst.view.frame.size.height,
そこにある0は一体何なのdst.view.frame.origin.y
ですか?
とにかく、これを配線してボタンからプッシュセグエを作成しましたが、これを行ったとき、セグエは画面の上部から約 3/4 だけ下に来て、下部の 1/4 は私の下部を示していましたルート ビュー。また、セグエの後に新しいVCのボタンを押してみると、プログラムがクラッシュしました。
どんな情報でも助けてください!