xcode更改视图控制器问题

Posted

技术标签:

【中文标题】xcode更改视图控制器问题【英文标题】:xcode changing view controllers issues 【发布时间】:2014-03-01 19:16:55 【问题描述】:

我一直在开发 iPhone 应用,但遇到了一些问题。我的应用程序中没有情节提要,我的 xib 中也没有任何内容。我已经通过代码初始化并设置了所有内容。当我从主视图控制器转到 GameViewController 时,一切都很好,但是当我通过后退按钮返回时,我遇到了这个问题:

不鼓励在分离的视图控制器上显示视图控制器。

当我重新到达主视图控制器时,几乎没有什么变化,例如视图在它应该发生的变化之前发生了变化。这是我的按钮的代码

GameViewController *game = [[GameViewController alloc] initWithNibName:nil bundle:Nil];
    [self dismissViewControllerAnimated:YES completion:NULL];
    [self presentViewController:game animated:YES completion:NULL];

这是返回按钮的代码:

ViewController *home = [[ViewController alloc] initWithNibName:nil bundle:nil];

[self dismissViewControllerAnimated:YES completion:NULL];
[self presentViewController:home animated:NO completion:NULL];

如果有人能帮我看看我做错了什么,那就太好了。

【问题讨论】:

后退按钮不会自动删除您的视图吗?为什么要手动处理? 【参考方案1】:

您不能从self 呈现home 视图控制器,因为它已经被解除。你应该改变

[self dismissViewControllerAnimated:YES completion:NULL];
[self presentViewController:home animated:NO completion:NULL];

UIViewController *parentViewController = self.presentingViewController;
[self dismissViewControllerAnimated:YES completion:^
 
     [parentViewController presentViewController:home animated:NO completion:nil];
 ];

【讨论】:

现在我收到一条错误消息:警告:在演示过程中尝试在 上演示 !加载后主菜单也不起作用。 现在它非常有问题,所以当我在重新到达时按下按钮时,各种情况都会发生,但您的代码确实可以解决我的问题,所以谢谢。 我能再问你一个问题吗?是否需要关闭 parentViewController? 不,您不需要关闭 parentViewController。但通常这取决于您想要拥有的 GUI 逻辑。 如果您需要其他问题的帮助,可以打开新问题。

以上是关于xcode更改视图控制器问题的主要内容,如果未能解决你的问题,请参考以下文章

Xcode - 我如何以编程方式在容器视图中嵌入/更改视图控制器?

Xcode - iOS - 要更改的导航控制器场景顺序

在滚动视图中更改 UIView 而 / 更新滚动视图高度 - Swift 3 / Xcode 8

iOS 内存泄漏导致更改视图控制器崩溃

更改变量以查看实时更改Xcode Swift

以编程方式设置 rootViewController 不起作用,仅在 Xcode 11 中从情节提要中选择初始视图控制器