首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打开NavigationController的根并传递值?

如何打开NavigationController的根并传递值?
EN

Stack Overflow用户
提问于 2017-05-23 19:11:52
回答 1查看 69关注 0票数 0

我正在创建Xamarin.iOS应用程序的登录部分。登录时,我希望将一个用户对象传递给ProjectsViewController。首先,用户输入用户名和密码,然后验证,最后,一旦验证,我想转到主屏幕,称为ProjectsViewController。

代码语言:javascript
复制
//first get user from Restful service 
var response = await apiService.GetUserByToken("http://192.168.1.20:55405",
            "/api",
            "/Account/FullUser",
            token.TokenType,
            token.AccessToken);
        //get User object
        var user = (User)response.Result;
        user.Password = password;
        if (response.IsSuccess)
        {
            //loguser is the User object that will be passed to the root
            logUser = user;
        }            

        //get storyboard 
        UIStoryboard board = UIStoryboard.FromName("Main", null);
        ProjectsViewController ctrl = (ProjectsViewController)board.InstantiateViewController("projectsViewController");
        //current user is the propery that I want to access in the next screen
        ctrl.CurrentUser = logUser;
        ctrl.ModalTransitionStyle = UIModalTransitionStyle.CoverVertical;

        UINavigationController nav = (UINavigationController)board.InstantiateViewController("navController");
        nav.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
        //this sends me to the root but the object is not passed
        PresentViewController(nav, true, null);

到目前为止,代码验证用户并将我发送到根屏幕,但是对象没有被传递。请帮帮我!提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 19:41:57

问题是您正在创建:ProjectsViewController的一个新实例并设置它的CurrentUser,但是您根本没有显示该控制器。

你应该做的是:

代码语言:javascript
复制
UINavigationController nav = (UINavigationController)board.InstantiateViewController("navController");
nav.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
//New code
var projectVC = (ProjectsViewController)nav.ViewControllers.FirstOrDefault();
projectVC.CurrentUser = logUser;

PresentViewController(nav, true, null);

因为当您从故事板实例化:"navController“时,它也将实例化它的ProjectsViewController,它位于ViewControllers列表中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44143202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档