在互联网上搜索并查看无数的论坛和教程后,我无法找到解决问题的方法。
问题出在这里:在我的ios应用程序中,我正在加载一个子webView,以便在互联网上查看一些stuf。为了能够回到我的应用程序,我设置了一个后退按钮,当我点击它时,它加载我的RootViewController。但是当我从我的subView加载我的视图控制器时,我有一个空白的乐队,它正在我的barButton标题下面。如果有人已经有这个bug?非常感谢有一些帮助或提示。
以下是我的错误图片: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];
}
感谢您的帮助
答案 0 :(得分:0)
您应该考虑为Web视图创建一个新的视图控制器,并将该视图控制器推送到您的导航堆栈或呈现它(并添加一些方法来取回)。将Web视图添加为子视图确实有效,但不是那么干净。
您的问题是您不应该自己调用loadView
(根本不是,这不是解决问题的正确方法)。您使用addSubview:
添加网络视图。与此相反的是removeFromSuperview
,您应该使用showBack
方法调用网络视图。