回到已经被加载并已经加载的viewController?没有导航控制器

时间:2015-02-15 05:05:51

标签: ios segue uistoryboardsegue

如何在没有Nav Controller嵌入的情况下返回已经从另一个VC中进行过segued的viewController?

意思是我有viewController一个segued到viewController B.我解散了viewController B,现在回到viewController A.我怎样才能回到viewController B的同一个实例?

我看了很多SO帖子,但它们似乎都是关于放松的,如果我想从B回到A,但又不回到B,那将会奏效。

此外,viewController A位于tabbar中。 Viewcontoller B不是。

谢谢!

2 个答案:

答案 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的引用以将其恢复,否则它将被删除!