iOSでUIViewController
をリサイクル/強制破壊することはできますか?Q:iOSでビューコントローラを強制的に破壊する方法
私はカスタムUIViewControllerTransition
得るために、このgithub projectを使用しています:ここで
は、プログラムの流れです:rootVc
がvc2
でvc2
nav
に先の
vc1
プレゼントUIButton
です。クリックすると、vc2
のNavigatioCcontroller
は拒否されます。
は、しかし、問題はvc2
はOSによってリサイクルされていないということですので、私は(rootVc
がvc2
ある)nav
に続い存在vc1
、に進行する場合、vc2
はviewDidLoad
メソッドを呼び出すことはありません。
問題がどこにあるかわかりません。私がvc2
のUIButton
をクリックすると、強制的にnav
とvc2
を破壊する方法がありますか?このようにして、私がnav
に再び現れたら、vc2
のviewDidload
が再び呼び出されます。
コード: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];
};
私はオプション2を考えています。それは私のプロジェクトでいくつかの問題を引き起こします。オプション1でテストを行います。このメソッドではどういう意味ですか?[self.navigationController dismissViewControllerAnimated:YES completion:^ { //ルートVCをリセットしますか? }]; ' – aircraft