我意识到这可能是一个非常基本的问题,但是我刚刚在三天前下载了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:验证
- 恢复身份证明:验证
如果你们需要更多信息,我愿意发布更多信息。我只是认为我发布了所有相关内容。