混淆了故事板和编程推送 ios Objective C

5
我很困惑storyboard和编程推送视图之间的关系。
我正在使用SWRevealViewController来显示一个菜单项。
如果我使用以下方式推送到storyboard:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"];
[self presentModalViewController:controller animated:YES];
[self.navigationController pushViewController:controller animated:YES];

我的Storyboard里显示了所有的信息,但是没有“返回”按钮到SWRevealViewController。
如果我使用以下方式推向视图控制器
PhotosViewController *frontViewController = [[StreamScreen alloc] init];
    newFrontController = [[UINavigationController alloc] initWithRootViewController:frontViewController];

我可以查看通过编程添加的所有内容,但无法查看来自storyboard的任何内容。

我的问题是如何访问来自storyboard和编程添加的内容。

1个回答

3

如果您使用 present 方法展示视图控制器,则不会出现默认的返回按钮,因为当您使用 present 方法展示一个控制器时,它不会被添加到 NavigationController 的导航栈中,因此不会提供该选项。

如果您想要推送控制器,请勿使用 presentModalViewController 方法。

请尝试以下方法:

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

如果您想呈现控制器,那么需要手动创建一个返回按钮,例如我们在导航栏上默认有的返回按钮,当点击它时,写下面的代码来关闭该控制器。
[self dismissViewControllerAnimated:YES];

希望这能对您有所帮助。

谢谢您提供这段代码。我现在又进了一步。现在我可以看到屏幕闪了一下,然后就变黑了。您有什么想法吗?再次感谢您。 - AB567
需要查看您的代码才能更好地为您提供答案。 原因可能是:您两次推送到第二个控制器。 - Malav Soni
1
如果我的答案解决了您发布的问题,请将其标记为正确答案。 - Malav Soni
你是100%正确的,我推了两次到第二个视图控制器。非常感谢你。 - AB567
很高兴能帮助你...编写愉快...Objective C。 - Malav Soni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接