4

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

Login_screen -> UINavigationController -> Main_Menu

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

prepareforsegue我了解当 segue 通过方法直接指向它时如何将数据从一个屏幕传递到下一个屏幕performsegue。但在这种情况下,login_screensegue 指向uinaviationcontrollerwhich 指向main_menu controller

我的假设是我需要创建一个自定义类来继承UINavigationController和实现某些方法,但由于uinavigationcontroller没有看到我不认为viewdidload或者viewwillappear是正确的方法。

任何帮助将不胜感激

我是新用户,所以我不能发布图片,但我会尽快解决这个问题

4

2 回答 2

9

您可以使用 UINavigationController 的 topViewController 属性。

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

希望这可以帮助

于 2012-12-03T14:00:13.270 回答
0

在任何情况下,您都需要一些容器来保存当前选定/活动对象。如果由于某种原因您无法扩展 UINavigationController(我想知道为什么),您始终可以在 AppDelegate 中拥有一些可以分配的属性,并在最终的 Main_Menu 控制器中读取此属性。

像这样:

AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate];
NSObject* myThing = app.myObj
if(!myThing) {
    app.myObj = ...
}
于 2012-10-31T21:34:40.770 回答