如何在没有Nav Controller嵌入的情况下返回已经从另一个VC中进行过segued的viewController?
意思是我有viewController一个segued到viewController B.我解散了viewController B,现在回到viewController A.我怎样才能回到viewController B的同一个实例?
我看了很多SO帖子,但它们似乎都是关于放松的,如果我想从B回到A,但又不回到B,那将会奏效。
此外,viewController A位于tabbar中。 Viewcontoller B不是。
谢谢!
答案 0 :(得分:2)
你不能用segue做这件事,因为segues总是实例化新的控制器。您应该在ViewControllerA中为ViewControllerB创建一个属性而不是segue,并且只在您第一次使用它时进行实例化(使用presentViewController:animated:completion)。回到A后,当你想再次转到B时,你会出现你已创建的实例。如果你使用故事板制作控制器,你会做这样的事情,
-(void)someMethod {
if (!self.vcB) { // vcB is a strong property
self.vcB = [self.storyboard instantiateViewControllerWithIdentifier:@"VCB"];
}
[self presentViewController:vcB animated:YES completion:nil];
}
答案 1 :(得分:0)
您需要创建对VC B的引用:
var VCB:UIViewController = bInstance
然后你想要从VCA中解雇VCB
VCA.dismissViewController(VCB,animated:false)
然后把它带回来你去:
VCA.presentViewController(VCB,animated:false)
请记住,Xcode的新编译器使用ARC进行自动引用计数。您需要保留对UIViewController的引用以将其恢复,否则它将被删除!