少し問題があります。A->B->C (-> はモーダル セグエ) ビュー A はルート ビュー コントローラーであり、C から A に戻る必要があります。 B からメソッド popToViewController を呼び出し、A は viewWillAppear を実行します。popToViewController を C から (A に) 呼び出すと、A の viewWillAppear は呼び出されません。どうすればこれを解決できますか? (Xcode7 と iOS 9 で動作)
ビューコントローラー A
#import "ViewControllerA.h"
#import "ViewControllerB.h"
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self setupSceneA];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"goToB"]) {
ViewControllerB *b = [segue destinationViewController];
}
}
ビューコントローラー B
#import "ViewControllerB.h"
#import "ViewControllerC.h"
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self setupSceneB];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"goToC"]) {
ViewControllerC *c = [segue destinationViewController];
}
}
- (IBAction)backToAButton:(id)sender {
[self dismissViewControllerAnimated:NO completion:nil];
}
ビューコントローラー C
#import "ViewControllerC.h";
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self setupSceneC];
}
- (IBAction)backToBButton:(id)sender {
[self dismissViewControllerAnimated:NO completion:nil];
}
- (IBAction)backToAButton:(id)sender {
[[self parentViewController] dismissViewControllerAnimated:NO completion:nil];
}