ストーリーボードを使用してアプリを開発しています。1つのViewControllerには、2番目のViewControllerにリンクするnavigationBarのボタンがあります。このトランジションはストーリーボードで定義されています(この場合、2つのViewControllerをリンクするプッシュセグエを定義しました)
Stackoverflowでこの投稿に続いてボタンの画像を変更しました。
しかし、問題は次のとおりです。ボタンのビューの変更により、ストーリーボードで定義したプッシュセグエが壊れます。したがって、問題は、セグエアクションを強制終了せずにBarButtonの背景を変更するにはどうすればよいかということです。
を使用してプログラムでセグエをリセットしたくありませんperformSegueWithIdentifier
。ストーリーボードですでに定義しているので、これは意味がないので、別の解決策に違いないと思います。
これが最善の解決策になると思います。
に viewDidLoad:
self.navButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.navButton.frame = CGRectMake(0, 0, 30, 30);
[self.navButton setImage:[UIImage imageNamed:@"yourImage"] forState:UIControlStateNormal];
[self.navButton addTarget:self action:@selector(yourNavButtonAction) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *logOutBarButton = [[UIBarButtonItem alloc] initWithCustomView:self.navButton];
[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObject:navButton, nil]];
そして、navButtonタップを処理するメソッドで(上yourNavButtonAction
から)
[self performSegueWithIdentifier:@"yourSegueIdentifier" sender:self];
**これには、ViewControllerのボタンではなく、ViewController自体から発生するストーリーボードセグエを作成する必要があることに注意してください。ViewControllerからターゲットViewControllerへのドラッグを制御し、結果のセグエに識別子(上記のyourSegueIdentifier)を指定すると、設定が完了します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加