3

私はアプリを開発しています。アプリはナビゲーションコントローラーを使用してさまざまなページ間を移動します。Webサービスと通信するときに、ユーザーに強制的にサインインできるようにする必要があります。サインインを単独で表示し、ロードし、すべての認証とアンロードを行うことができないようです。

SOに関する記事を読んでいたのですが、サブビューを使用してこれをメインビューに挿入することです。

これには、ログインフィールド、ユーザー名、パスワードなどが含まれ、認証が成功すると非表示になります。その後、サインアウト時に再び表示されます。これは正しいです?これは、ナビゲーションコントローラーを使用して複数ページのアプリのサインイン画面を実行するための最良の方法ですか?

4

2 に答える 2

2

ログイン画面を作成する方法はたくさんあります。私の場合、デリゲートでログインコントローラーを宣言しました。ログイン画面を表示したいときは、モーダルとして呼び出します。

[self.window.rootViewController presentModalViewController:loginScreen animated:YES];

デリゲートにあるので、デリゲートにフックバックすることで、コード内のどこにいてもログイン画面を表示するために呼び出すことができます。

任意のコントローラーのどこでも:

AppDelegate *myAppDelegate= (AppDelegate *)[[UIApplication sharedApplication]delegate];
[myAppDelegate logout];

その後、代理人で

-(void)logout{
[self.window.rootViewController presentModalViewController:loginScreen animated:YES];
//Do any logging out stuff here...
}
于 2012-11-09T08:51:37.613 に答える
1

私は現在、あなたと同じことを開発しています。これが私がそれを行う方法です。アプリの起動時にViewController呼び出される HomeViewController と呼びましょう。

このViewDidLoadメソッドでは、接続されているユーザー ( my 内の変数AppDelegate) が存在するかどうかを確認します。はいの場合、HomeViewController を表示します。それ以外の場合は、WS サービス呼び出しとパスワード/ログインの挿入を処理する 2 つ目のビュー コントローラー (LoginViewController) を表示します。

この方法は、あなたのものとほとんど同じです。「ホーム」ビューにコードが多くなりすぎないように、2 つのビューを分割しました。それを行う他の方法は見つかりませんでした。

ところで、複数のページ間を移動したい場合、iOS 開発には優れた機能があります: ストーリーボードです。

于 2012-11-09T08:46:23.717 に答える