对故事板和以编程方式推送 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 11.0 以来不推荐使用底部布局指南”警告
Cordova iOS 应用程序在启动故事板和第一个屏幕之间出现白色闪光