0

インターネット全体を検索し、無数のフォーラムとチュートリアルを見た後、バグを修正する方法が見つかりません。

問題は次のとおりです。私の iOS アプリでは、サブ webView を読み込んで、インターネット上のいくつかのものを表示しています。アプリに戻ることができるように、戻るボタンを設定しました。これをクリックすると、RootViewController が読み込まれます。しかし、サブビューからビュー コントローラーをロードすると、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内の Web ビューで呼び出す必要がありますshowBack

于 2013-10-18T11:23:14.607 に答える