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

Going back to viewController that was already segued to and is already loaded? No nav controller

如何返回到一个 viewController,它已经从另一个 VC 中分离出来,但没有嵌入导航控制器?

意思是我有 viewController A,它转到 viewController B。我解雇了 viewController B,现在回到 viewController A。我怎样才能回到viewController B 的相同实例?

我看了很多 SO 帖子,但它们似乎都是关于放松的,如果我想从 B 回到 A,但不想再次回到 B,这会起作用。

此外,viewController A 在标签栏中。 Viewcontoller B 不是。

谢谢!

您需要创建对 VC B:

的引用
var VCB:UIViewController = bInstance

然后你会想要从 VCA

中解雇 VCB
VCA.dismissViewController(VCB,animated:false)

然后把它带回去:

VCA.presentViewController(VCB,animated:false)

请记住,Xcode 的新编译器使用 ARC 进行自动引用计数。您需要保留对 UIViewController 的引用才能将其取回,否则它会被删除!

您不能使用 segue 执行此操作,因为 segue 总是实例化新控制器。您应该在 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];
}