Возможно ли переработать/принудительно уничтожить UIViewController
в iOS?В: Как заставить уничтожить viewcontroller в iOS?
Я использую этот github project, чтобы получить пользовательские UIViewControllerTransition
:
Вот поток программы:
vc1
подарки к вnav
, к которомуrootVc
являетсяvc2
- В
vc2
там этоUIButton
. При нажатии,vc2
вNavigatioCcontroller
уволит.
Но проблема в том, что vc2
не перерабатывается ОС, поэтому, когда я прогрессировать vc1
, затем представить nav
(который rootVc
является vc2
), 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 rejectViewControllerAnimated: YES complete:^{ // перезагрузите root vc? }]; – aircraft