我已经在这个问题上工作了几天,这让我完全疯了。我正在使用故事板。
我有一个带webview的viewcontroller1。 webview填充html登录表单,通过textField(用户名)另一个textField(密码),然后是一个完美的按钮(submit):一旦按下按钮,html表单将填充我的textFields输入。填写并提交表单后,我希望将用户发送到具有webview的新viewcontroller(viewController2),我想用网站上的一些内容填充。对于这个世界,我无法了解如何将用户发送到下一个视图。
另一个细节是登录html表单有一个用户类型select。因此,提交按钮发送给我的地址可以是不同的。如果它的老师填写表格,返回的地址将是“myschool / jsp / teacher / right_teacher_lesson_status.jsp”,如果它是学生的其他东西,如果它来自另一所学校,还有别的东西。
这是我尝试将用户发送到包含UIwebview2的下一个视图的代码:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:
(UIWebViewNavigationType)navigationType
{
if (navigationType == UIWebViewNavigationTypeFormSubmitted) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ViewController2 *vc = [storyboard instantiateViewControllerWithIdentifier:@"webview2"];
NSLog(@"Allow navigation to request = %@", request);
[self.navigationController pushViewController:vc animated:YES];
return YES;
}
NSLog告诉我
“允许导航请求:/myschool/jsp/teacher/right_teacher_lesson_status.jsp”
因此,如果我告诉webview2地址,肯定会把它拿起来。但由于我不知道它是哪个学校或使用类型,我希望webview2从上面的代码中获得。请帮我。如何将信息传递给下一个视图?
答案 0 :(得分:0)
我建议创建一个包含两个文本字段和一个选择器菜单的视图。这比网络视图好得多。如果您无法以漂亮的方式显示生成的内容,则可以使用Web视图,但应尽可能使用自定义视图优化用户体验。
一旦你有UIKit元素来捕获数据,将它传递给下一个视图控制器将是微不足道的。
话虽如此:
也许这确实是HTML编码的问题。您的“提交”按钮可以包含URL中的参数(GET而不是POST)。然后,您只需将URL传递给下一个视图控制器即可。
vc2.urlToLoad = request;
由于您没有显示URL,因此无论如何都不会向用户公开get变量。由于您的服务器可以解释参数,您甚至不必在第二个视图控制器中解析它们(尽管您可以将它们用于其他目的)。