iOS에서 UIViewController
을 재활용/강제로 파괴 할 수 있습니까?Q : iOS에서 뷰 컨트롤러를 강제로 파괴하는 방법
내가 정의 UIViewControllerTransition
얻을이 github project을 사용하고하십시오 nav
에
vc1
선물이rootVc
이vc2
에서vc2
- 되는 : 여기
은 프로그램의 흐름입니다
UIButton
입니다. 클릭하면vc2
의NavigatioCcontroller
이 (가) 해제됩니다.
하지만 문제가 vc2
는 OS에 의해 재생되지 않도록하고, 그래서 (rootVc
가 vc2
이다) nav
에 다음 본 vc1
로 진행하면 vc2
는 viewDidLoad
메소드를 호출하지 않는다.
어디에 문제가 있는지 잘 모릅니다. 내가 vc2
의 UIButton
을 클릭하면 강제로 nav
과 vc2
을 파괴 할 수있는 방법이 있습니까? 이렇게하면 nav
에 다시 나타나면 vc2
의 viewDidload
이 다시 호출됩니다.
코드 :
vc1
에서 : nav
를 해제하면 나중에 다시 표시 할 수 있도록
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];
};
나는'option 2'에 대해 생각해 봤는데, 그것은 내 프로젝트에서 약간의 문제를 일으키고, 나는 옵션 1에서 테스트를 취할 것이고, 그 방법에서 의미 할 것인가 :'[self.navigationController dismissViewControllerAnimated : YES completion :^{ // 루트 VC를 재설정 하시겠습니까? }]; – aircraft