Xamarin:控制器和故事板视图之间转换的问题

时间:2014-08-30 03:06:56

标签: xamarin.ios xamarin

我意识到这可能是一个非常基本的问题,但是我刚刚在三天前下载了Xamarin,并且在没有找到解决方案的情况下我被困在同一个问题上两天。

以下是我要做的事情:

获取用户输入,调用API,解析JSON并将数据传递给另一个控制器,并更改视图。

这是我到目前为止所做的:我得到用户输入,我调用API,我解析响应,将令牌写入文件,我想将剩余的数据传递给第二个控制器。

这是我正在尝试的代码:

var verifyCode = Storyboard.InstantiateViewController("verify") as VerifyCodeController;
if (verifyCode != null) 
{
    this.NavigationController.PushViewController(verifyCode, true);
}

我的故事板设置:

导航控制器 - > routesTo - > FirstController

我设置了另一个UI控制器视图,其中设置了以下属性: storyboardid:验证 restoreid:验证

我试图将控制器视图推送到导航控制器上。

现在这行出错了:

var verifyCode = Storyboard.InstantiateViewController("verify") as VerifyCodeController;

给我这个错误,我不知道这意味着什么:无法找到此对象的现有托管实例,也无法创建新的托管实例。

我接近我的方法吗?

p.s:我不能像教程建议的那样使用ctrl拖动,因为我有异步调用。在任何情况下我都不能让它同步。因此,所有页面转换都必须是手动的。

修改

请求更多代码或更多信息的任何人:

    partial void registerButton_TouchUpInside (UIButton sender)
    {
        phone = registrationNumber.Text;

        string url = url;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create (url); 
        request.Method = "GET"; 
        Console.WriteLine("Getting response...");
        using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
        {            
            if (response.StatusCode != HttpStatusCode.OK)
            {
                Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
            }
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                string content = reader.ReadToEnd();
                if (string.IsNullOrWhiteSpace(content))
                {
                    //Console.WriteLine(text);
                    Console.Out.WriteLine("Response contained empty body...");
                }
                else 
                { 
                    var json = JObject.Parse (content);
                    var token = json["token"];
                    var regCode = json["regCode"];
                    var aURL = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
                    var filename = Path.Combine (aURL, "app.json");
                    File.WriteAllText(filename, "{token: '"+token+"'}");


                    // transition to main view. THIS IS WHERE EVERYTHING GETS MESSED UP
                    var verifyCode = Storyboard.InstantiateViewController("verify") as VerifyCodeController;
                    if (verifyCode != null) 
                    {
                        this.NavigationController.PushViewController(verifyCode, true);
                    }
                }
            }
        }   
    }

以下是我的故事板中每个视图的所有信息:

1-导航控制器:     - 应用程序从那里开始     - 根是注册寻呼机,这是我们当前正在处理的页面。

2-寄存器视图。    
- 根页面    
- 类RegisterController    
- 没有故事板ID    
- 没有恢复身份

3-验证视图    
- 最初没有连接到导航控制器,但我希望它最终连接。我必须以任何方式连接它吗?通过segue?    
- 类VerifyCodeController    
- 故事板id:验证    
- 恢复身份证明:验证

如果你们需要更多信息,我愿意发布更多信息。我只是认为我发布了所有相关内容。

0 个答案:

没有答案
相关问题