Ist es möglich, eine UIViewController
in iOS zu recyceln/zu zerstören?F: Wie erzwinge die Zerstörung eines Viewcontrollers in iOS
ich diese github project bin mit einem benutzerdefinierten UIViewControllerTransition
zu erhalten:
Hier ist der Ablauf des Programms:
vc1
Geschenke zu einemnav
, auf denen dierootVc
sindvc2
- In
vc2
dort ist einUIButton
. Wenn Sie darauf klicken, wirdvc2
'sNavigatioCcontroller
wird entlassen.
Aber das Problem ist, dass vc2
nicht durch das Betriebssystem zurückgeführt wird, so dass, wenn ich vc1
Fortschritte, dann anwesend nav
(die rootVc
vc2
ist), wird vc2
die viewDidLoad
Methode nicht nennen.
Nicht sicher, wo das Problem liegt. Gibt es eine Möglichkeit, dass, wenn ich vc2
's UIButton
klicke, zerstöre die nav
und vc2
? Auf diese Weise, wenn ich wieder zu nav
, vc2
viewDidload
wird wieder aufgerufen werden.
-Code:
in vc1
:
LMLQQSearchSelectViewController *search_vc = [[LMLQQSearchSelectViewController alloc] initWithNibName:@"LMLQQSearchSelectViewController" bundle:nil];
search_vc.fromController = @"KnowledgeViewController";
search_vc.pre_type = @"ENCYCLOPEDIACOL";
LMLQQSearchNavController *nav = [[LMLQQSearchNavController alloc] initWithRootViewController:search_vc];
nav.navigationBarHidden = YES;
__weak typeof(self) weakSelf = self;
_search_header.block = ^(){
weakSelf.transition = [[HYBEaseInOutTransition alloc] initWithPresented:^(UIViewController *presented, UIViewController *presenting, UIViewController *source, HYBBaseTransition *transition) {
HYBEaseInOutTransition *modal = (HYBEaseInOutTransition *)transition;
// If you don't specify, it will use default value
// Default is NO, if set to YES, it will use spring animation.
modal.animatedWithSpring = NO;
} dismissed:^(UIViewController *dismissed, HYBBaseTransition *transition) {
// do nothing
}];
nav.transitioningDelegate = weakSelf.transition;
[weakSelf presentViewController:nav animated:YES completion:NULL];
};
Ich habe an die 'Option 2' gedacht, es wird einige Probleme in meinem Projekt verursachen, ich werde einen Test in Option 1 nehmen, meinst du in der Methode:' [self.navigationController disneyViewControllerAnimated: YES completion:^{ // Zurücksetzen der Root-VC? }]; ' – aircraft