0

注意: IOS 開発では N00b です。過去 10 日間ほどの間にいくつかのチュートリアルとコード スニペットを読み、危険な情報を収集しました。私が達成しようとしているのは、ユーザー ログイン用に Web ビュー (サブビューとして) を開くことですが、何らかの理由でナビ コントローラーに [戻る] ボタンが表示されません。私はいくつかの異なることを試しましたが、役に立ちませんでした.明らかに私は何か間違ったことをしているので、ガイダンスを求めています.

私のナビ コントローラーはルート コントローラーとして設定され、スタックの次は epViewController です。このビュー コントローラーは、アプリの開始点です。このビューから、ログインするためのボタンとデータを入力するためのボタンの 2 つのボタンがあります (この質問には重要ではありません)。

epViewController コード スニペット:

- (IBAction)buttonToLoginView:(id)sender
{
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/wsapi/user/login"]]];

    [self.view addSubview:webView];
}

サブビューにはナビゲーション バーとリモート ログイン ページが表示されますが、戻るボタンは表示されないため、これはうまく機能します。他のいくつかのコード スニペットに基づいて、次のことを試しました (同じ epViewController ファイル内で):

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back???" style:UIBarButtonItemStylePlain target:nil action:nil];

    self.navigationItem.backBarButtonItem = backButton;
}

ただし、このカスタム ボタンは、ボタンをクリックしてデータを入力した場合にのみ追加されます (実際には、別の具体的なビュー コントローラーとサブビューに移動します)。

サブビューに戻るボタンを追加するにはどうすればよいですか? ここでサブビューを使用することをお勧めしますか?代わりに別の具体的なビュー コントローラーにリンクする必要がありますか?

4

1 に答える 1

1

ナビゲーション コントローラーは、実際のすべてのビュー コントローラーのコンテナーと考え​​てください。この意味で、ナビゲーション コントローラーは実際には「スタックの最初」ではなく、「epViewControllerスタックの次」です。代わりに、ナビゲーション コントローラー実際のスタックであり、epViewControllerが最初の (そして唯一の) アイテムです。アプリが起動すると、ナビゲーション コントローラーはそのルート ビュー コントローラーを表示します。これが画面に表示されます。ナビゲーション コントローラーのpushViewController:メソッドを呼び出すと、新しいビュー コントローラーがスタックにプッシュされ、戻るボタンが表示されます。

あなたの場合、Web ビューをメイン ビューのサブビューとして表示しないことをお勧めします。代わりに、独自のView Controllerに配置してください。このView Controllerでは、以前試みたように戻るボタンを追加できます。次に、 を使用してそのView Controllerをモーダルに表示し[self presentModalViewController:]ます。これにより、ユーザーはより整理されて流動的に感じられ、メイン ビューでサブビューをいじる必要がなくなります。

于 2013-05-09T00:14:35.133 に答える