2012-03-19 8 views
0

私は客観的なCでiphoneアプリケーションを設計しています。 現在のところ、私はアプリケーションの初めにUHavigationControllerを持っています と残りのナビゲーションがそれから処理されていました。ナビゲーションベースのアプリケーションでログインビューを管理するにはどうすればよいですか?

今、アプリケーションがロードされたときにログイン画面を挿入します。

私はアプリケーションの残りの部分から独立させるにはどうすればよいですか? つまり、私はLoginViewControllerを作成し、これを私のアプリケーションのNavigationViewController に追加しました。ユーザーが正常にログインすると、アプリケーションは次の画面がナビゲーションコントローラーにプッシュされた状態で続行されます。 しかし、この方法の問題点は、ナビゲーション項目の最初のログイン画面に戻ってしまうことです。

私はログイン後最初の画面からナビゲーションバーを隠そうとしましたが、その後の各画面からナビゲーションバーを削除しました。

私が考えることができる唯一の解決策は、開始画面でナビゲーションバーを手動で非表示にして、後続の画面で表示できるようにすることです。 他にもまったく問題はありませんか?

+0

最初のコントローラのviewDidLoadからLoginScreenを表示することができます。ログインした後で、それを閉じることができます。 –

答えて

2

私はおそらく、ログイン画面を無視して、あなたのナビゲーションコントローラを行い、その後、presentModalViewControllerを使用してログイン画面を提示したい:アニメーション:

0

をユーザーは、あなたがそれを却下し、継続ログイン後navigationControllerためviewDidLoadであなたのLoginViewControllerを提示あなたの画面の流れはあなたが望むように。 NSUserDefaultにそのユーザのログイン情報を保存することができます。この値をチェックしてログインしなかった場合はloginViewを表示し、そうでなければ通常のナビゲーション画面を表示します

0

ユーザがアプリにログインしていない場合LoginViewControllerを表示して、ユーザがそれまでナビゲーションコントローラに行くことを許可しないでください。ログインが表示されないと、LoginViewControllerはナビゲーションコントローラを直接表示するので、ユーザーは何度も何度も署名する必要はありません。ユーザーのログイン情報を保存するには、NSUserDefaultsを使用します。アプリケーションの読み込み時に情報を取得し、それに応じてコントローラを表示します。

乾杯

あなたはUserDefaultsに格納する必要が
0

いくつかの値 - 自動ログイン/行ったログインとアプリが起動しているときは、システムにおけるユーザisn`tは、uは、ログインビューコントローラを作成する必要がある場合は、この値をチェックして、modalyそれを提示。あなたの最初のビューの前 は、uは、このようなものが必要見える -

BOOL didLogin = [[NSUserDefaults standardUserDefaults]boolForKey:@"isLogin"]; 
if (!didLogin) { 
    LoginViewController *loginVC = [[LoginViewController alloc]init]; 
    [self presentModalViewController:loginVC animated:NO]; 
} 

、ユーザがログインしたとき、あなたは、ユーザーのデフォルトの値を保存する必要が

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isLogin"]; 

あなたはvant自動ログイン機能あなたは、パスワードを保存する必要がある場合キーチェーン

0

私はあなたのfirstviewcontrollerのボタンを隠し、すべてのviewcontrollerを休憩することを提案します。

-(void)viewWillAppear:(BOOL)animated { 
    self.navigationItem.hidesBackButton=YES; 
} 

そうでない場合は、別の解決策は、あなたのfirstviewcontrollerのviewDidLoadメソッドでは、ログインとして存在loginviewcontrollerは、ログインボタンの提示logincontrollerを却下完了することです。

実装する標準的な方法であっても、ログイン機能を持つすべてのアプリケーションにこのタイプのフローがあります。

これがあなたを助けてくれることを願っています。

関連する問題