0

在互联网上搜索并查看了无数的论坛和教程后,我找不到修复我的错误的方法。

这是问题所在:在我的 ios 应用程序中,我正在加载一个子 webView 以查看互联网上的一些内容。为了能够回到我的应用程序,我设置了一个后退按钮,当我点击它时它会加载我的 RootViewController。但是当我从我的 subView 加载我的视图控制器时,我的 barButton 标题下方有一个空白带。如果有人已经有这个错误??非常感谢您提供一些帮助或提示。

这是我的错误的图片: http: //s21.postimg.org/4al09vl7r/bug.jpg

这是代码:

- (void) showBack;
{
  [self loadView];
  [self.navigationItem.leftBarButtonItem setEnabled:NO];
}


- (void) makeRootButton
{
  UIBarButtonItem *rootButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Hub"      style:UIBarButtonItemStyleBordered target:self action:@selector(showBack)];
  self.navigationItem.leftBarButtonItem = rootButtonItem;
  [rootButtonItem release];
}

- (void)showWebView;
{
  UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.frame];
  [self.view addSubview:webView];
  [self makeRootButton];

  NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
  NSString *defaults = [prefs stringForKey:@"myKey"];
  NSString *defaults2 = [prefs stringForKey:@"mySecondKey"];

  NSString *username = defaults;
  NSString *password = defaults2;

  NSURL* url = [NSURL URLWithString:@"http://www.google.com"];

  NSString* body = [NSString stringWithFormat:@"login=%@&password=%@", username,   password];
  NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url   cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30];
  request.HTTPMethod = @"POST";
  request.HTTPBody = [body dataUsingEncoding:NSStringEncodingConversionAllowLossy];

  [webView loadRequest:request];

}

谢谢你的帮助

4

1 回答 1

0

您应该考虑为 Web 视图创建一个新的视图控制器,并将该视图控制器推送到您的导航堆栈或呈现它(并添加一些返回的方法)。将 web 视图添加为子视图确实有效,但不是那么干净。

你的问题是你不应该打电话给loadView自己(根本,这不是解决问题的正确方法)。您使用 . 添加 web 视图addSubview:。与此相反的是removeFromSuperview,您应该在showBack方法中调用 Web 视图。

于 2013-10-18T11:23:14.607 回答