iphone – 在模态segue之后删除最后一个UIViewController
发布时间:2020-12-14 17:38:20 所属栏目:百科 来源:网络整理
导读:所以我在故事板中有3个视图控制器,(VC1,VC2和VC3). 每个视图都有一个调用IBAction的按钮,该按钮调用此方法以模态转换到另一个视图: [self doSegue: myViewController_ID];-(void) doSegue:(NSString *)_myViewController_ID{ //get UiViewController from s
所以我在故事板中有3个视图控制器,(VC1,VC2和VC3).
每个视图都有一个调用IBAction的按钮,该按钮调用此方法以模态转换到另一个视图: [self doSegue: myViewController_ID]; -(void) doSegue:(NSString *)_myViewController_ID { //get UiViewController from storybord with Unique ID UIStoryboard *storyboard = self.storyboard; UITableViewController *svc = [storyboard instantiateViewControllerWithIdentifier:_myViewController_ID]; //set presentation & transition styles svc.modalPresentationStyle = UIModalPresentationFullScreen; svc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; //do segue [self presentViewController:svc animated:YES completion:nil]; } 让我设置从VC1到VC2,一次在VC2 我想要的是删除以前的ViewController(VC1). 这是因为我不会提供[self dismissViewControllerAnimated:YES completion:nil];方法 我不希望内存随着堆栈中所有视图控制器的累积而增长. 注意:我不会使用导航控制器或标签控制器,只使用视图控制器. 谢谢你的帮助. 解决方法
只是一个猜测,我没试过……
在VC2上保留VC1的参考 – >使用prepareForSegue发送它: 然后在VC2上 [self.previousViewController willMoveToParentViewController:nil]; [self.previousViewController removeFromParentViewController]; 只是为了确保在View Controller上插入 - (void)dealloc { NSLog(@"dealloc: %@",self); } 并看看控制台 编辑: - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. // ??? if ([self isViewLoaded] && self.view.window == nil) { NSLog(@"UNLOADING"); self.view = nil; [self dismissViewControllerAnimated:NO completion:nil]; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |