OStack程序员社区-中国程序员成长平台

标题: ios - 来自另一个 View Controller 时的 xcode 问题 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 19:44
标题: ios - 来自另一个 View Controller 时的 xcode 问题

我正在开发一个 iPhone 应用程序并遇到了一些问题。我有一个主视图 Controller 和另一个名为 GameViewController 的 Controller 。我在主视图 Controller 中有一个按钮可以进入游戏,游戏中有一个后退按钮可以返回主视图 Controller 。如果我转到游戏 View Controller 并返回主视图,下次按下按钮转到游戏 View Controller 时,我会发现各种故障。这是我的按钮去 gameViewController 的代码:

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

[self presentViewController:game animated:YES completion:NULL];

这是转到主视图 Controller 的后退按钮代码:

    ViewController *home = [[ViewController alloc] initWithNibName:nil bundle:nil];
UIViewController *parentViewController = self.presentingViewController;
[self dismissViewControllerAnimated:YES completion:^
 {
     [parentViewController presentViewController:home animated:NO completion:nil];
 }];

如果有人能提供帮助,将不胜感激。



Best Answer-推荐答案


你不使用 UINavigationController 有什么原因吗?即使您想隐藏导航栏并提供自己的导航 UI,也可以使用它。听起来您有自己的后退按钮,这就足够了。

使用 UINavigationController,您的代码看起来更像这样:

// in your application delegate's application:didFinishLaunchingWithOptions: method

UINavigationController *nav = [UINavigationController alloc] initWithRootViewController:home];
nav.navigationBarHidden = YES; // this hides the nav bar
self.window.rootViewController = nav;

// from your 'home' VC to present the game vc:

GameViewController *game = [[GameViewController alloc] initWithNibName:nil bundle:Nil];
[self.navigationController pushViewController:game animated:YES];

// from your 'game' VC to get back to 'home':

[self.navigationController popViewControllerAnimated:YES];

您只是在一个地方实例化“家庭”和“游戏” View Controller ,而 UINavigationController 将 View Controller 显示在其堆栈的顶部。

关于ios - 来自另一个 View Controller 时的 xcode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119913/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4