将数据传递给UINavigationController指向的视图控制器

时间:2012-10-31 21:07:00

标签: ios uinavigationcontroller

所以继承我的问题。我是一个无声的stackoverflow分析器,我使用xcode 4.5故事板为一个应用程序启动一个视图控制器,要求输入用户名和密码。我的应用程序通过后端服务器检查数据,然后如果登录是正确的,它执行一个segue指向uinavigationcontroller,它将屏幕转发到主菜单.... uinavigationcontroller没有被篡改并自动推送主菜单。

Login_screen -> UINavigationController -> Main_Menu

我的问题是如何将NSString用户名从登录屏幕传递到主菜单屏幕。

我理解当segue通过prepareforsegue方法以及performsegue直接指向它时,如何将数据从一个屏幕传递到下一个屏幕。但在这种情况下,login_screen segue指向指向uinaviationcontroller的{​​{1}}

我的假设是我需要创建一个继承main_menu controller并实现某些方法的自定义类,但由于UINavigationController未见,我认为uinavigationcontrollerviewdidload不是正确的方法。

任何帮助将不胜感激

我是新用户,因此我不允许发布图片,但我会尽快解决此问题

2 个答案:

答案 0 :(得分:9)

您可以使用UINavigationController的topViewController属性。

将UINavigationController.topViewController对象转换为Main_MenuViewController并正常设置数据。

希望这有帮助

答案 1 :(得分:0)

无论如何,您需要一些容器来保存当前所选/活动对象。我无论出于什么原因你无法扩展UINavigationController(我想知道为什么),你总是可以在AppDelegate中拥有一些你可以分配的属性,并在你的最终Main_Menu控制器中读取这个属性。

像这样的Smth:

AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate];
NSObject* myThing = app.myObj
if(!myThing) {
    app.myObj = ...
}