对故事板和以编程方式推送 ios Objective C 感到困惑

Posted

技术标签:

【中文标题】对故事板和以编程方式推送 ios Objective C 感到困惑【英文标题】:Confused about storyboards and pushing programmatically ios Objective C 【发布时间】:2015-04-30 09:25:39 【问题描述】:

我对故事板和以编程方式推送视图之间的关系感到非常困惑。

我正在使用 SWRevealViewController 来显示项目菜单。

如果我使用

推送到情节提要
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"];
[self presentModalViewController:controller animated:YES];
[self.navigationController pushViewController:controller animated:YES];

我的故事板中的所有信息都已显示,但 SWRevealViewController 没有“返回”按钮。

如果我使用

推送到视图控制器
PhotosViewController *frontViewController = [[StreamScreen alloc] init];
    newFrontController = [[UINavigationController alloc] initWithRootViewController:frontViewController];

然后我可以查看我以编程方式添加的所有内容,但故事板上什么也看不到。

我的问题是如何访问故事板和我以编程方式添加的内容。

【问题讨论】:

【参考方案1】:

如果你展示视图控制器,那么它不会给你默认的后退按钮,因为当你展示一个控制器时,它不会添加到 NavigationController 的导航堆栈中,所以它不会给你那个选项。

如果您想要推送控制器,请不要使用 presentModalViewController

像下面这样试试

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"];
[self.navigationController pushViewController:controller animated:YES];

如果你想展示控制器,然后手动添加一个返回按钮,就像我们在导航返回按钮中默认设置的一样,然后点击下面的代码来关闭控制器。

[self dismissViewControllerAnimated:YES];

希望对你有所帮助。

【讨论】:

感谢您提供此代码。我现在更进了一步。现在我看到我的屏幕有一瞬间,然后屏幕变黑。任何想法为什么会这样?再次感谢您。 必须查看您的代码才能更好地为您提供答案。原因可能是:您两次推送到第二个控制器 如果我的回答解决了您发布的问题。请标记为正确答案。 你是 100% 正确的,我两次推送到第二个视图控制器。非常感谢。 很高兴为您提供帮助...编码和享受.. 目标 C

以上是关于对故事板和以编程方式推送 ios Objective C 感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

ios swift故事板和xibs

故事板和笔尖兼容?

故事板和“自 iOS 11.0 以来不推荐使用底部布局指南”警告

Cordova iOS 应用程序在启动故事板和第一个屏幕之间出现白色闪光

IOS:故事板和侧边菜单作为 facebook 应用程序 [关闭]

iOS 以编程方式转到选项卡和推送视图控制器