あなたは良いスタートを切ったようです。タブバーの設計をしているので、ログインページの表示方法と実行時期を選択する必要があります。
タブバーが表示される前に提示するか、最初のビューコントローラにロジックを入れてログインプロセスを開始する必要があります。他の方法もありますが、それらはもっと複雑になり、今私はあなたに基本的な選択肢を与えたいと思っていました。
ここに私がお勧めしたい一般的な考え方があります。
a)ユーザがログインしているかどうかを判断するために、どこかに永続的なストレージ変数を作成します。
b)このフラグのチェックを、タブバーに接続されている最初のView ControllerのViewをロードするメソッドに追加します。
c)ビューコントローラから直接モーダルログインページを表示します。もし彼らがログインしていればそれを却下し、もしそうでなければ、彼らはモーダルページに固執しています。
ので、ここでそれを行う方法を基本的に次のとおりです。説明の目的のために
、私はあなたの最初のビューコントローラを呼び出すために行くだろう - OK - あなたのタブバーコントローラ上の最初のタブ - fviewControllerを?あなたは絵コンテやseguesを使用しているように見えるfviewController.m
-(void)viewDidLoad {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([[defaults objectForKey:@"loggedIn"]boolValue]) {
NSLog(@"user is logged in - do nothing");
}
else {
NSLog(@"User is not logged in");
[self performSegueWithIdentifier:@"LoginPage" sender:self];
}
}
カップルより多くのポイントで
。その場合は、次の操作を行います:
- ログインページ用の新しいビューコントローラを作成するコントロールがようセグエを識別し、あなたのタブバー
- の最初のビューコントローラからそれへのセグエ接続をドラッグしますログイン・ビュー・コントローラのための新しいビューコントローラクラスは
- ユーザーがログインしている場合、あなたはそのバックNSUserDefaultsに保存する必要があり、あなたの認証
- をあなたのビューを提示し、管理する
- クレートを「モーダル」 注:複数のユーザーまたは他のスキームがある場合は、現在のユーザーのトラック状況の例で示した単一の値を変更することができます。 また、ログアウトコードがある場合は、フラグを正しく設定する必要があります。 また、ユーザーが頻繁にログインしてログアウトする場合は、ビューの読み込みの代わりにビューが表示されます。
状態反転する:モーダルビューを閉じるには
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:[NSNumber numberWithBool:YES] forKey:@"loggedIn"]; //in
[defaults setValue:[NSNumber numberWithBool:NO] forKey:@"loggedIn"]; //out
do this in your login controller
を。技術的に、あなたはこれを行うには、デリゲートのコールバックを使用する必要がありますが、あなたは物事をシンプルに保つためにしようとしている場合、これは
[self dismissViewControllerAnimated:YES completion:^{
}];
は、だからあなたのロジックは次のようになります[OK]をする必要があり - 彼らはログインしたのですか?はい。ログインした後、YESステータスを設定して閉じます。ログインしなかった場合は何もしないでください。彼らは立ち往生している。
最後に、ログインコントローラをセットアップする必要がある場合、segueが発生する前に、prepareForSegue ...というメソッドを使用して変数を初期化します。チュートリアルをやっているなら、おそらくそれについて読んでいるはずです。
まあ...助けて欲しい。これは非常に基本的なアプローチです。それが有効になっても、セキュリティと機能を引き続き追加できます。
最高の運。
は、あなたが1つの、タブ2つのアイコン&公共のための1つのバーと認証から保護している非公共のための別のものを持って正常に動作しますか? –
@KumarKl No.現在、タブが2つあるタブバーは1つのみです。ログイン画面には、ログインボタンを置くナビゲーションバーがあります。 – aVC
K私はそれを得ました。私はいくつかのものを入れます。 –