後,我有一個小問題。 我的工作與視圖控制器這樣一個簡單的應用程序中的導航控制器: A-> B-> C( - >是模態塞格斯) 查看A是根視圖控制器,我需要從前來回A C.如果我從B調用popToViewController方法,A運行viewWillAppear;如果我所說的popToViewController從C(至A),viewWillAppear中上的一個不叫。 我該如何解決這個問題?viewWillAppear中不叫popToViewController
的ViewController甲
#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];
}
}
的ViewController B(上Xcode7和iOS 9工作)
#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];
}
的ViewControllerÇ
#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];
}
那麼你使用模態或推塞格斯?它們是有區別的。看起來你正在談論推塞格。 – Andy
如果你使用模態賽格,你需要使用dismiss view controller。 –
我正在使用模態segues,並在popToViewController後不久使用關閉視圖控制器。當我在B上時沒關係,但是當我在C上時,它調用A而不運行viewWillAppear。 –