所以继承我的问题。我是一个无声的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
未见,我认为uinavigationcontroller
或viewdidload
不是正确的方法。
任何帮助将不胜感激
我是新用户,因此我不允许发布图片,但我会尽快解决此问题
答案 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 = ...
}