私はタブベースのiphoneアプリケーションを構築しています。各タブのすべての情報はユーザーに関連しています。つまり、各タブに移動する前にログインする必要があります。最初のタブにユーザー名とパスワードの入力を入れ、ログインが成功したらキーチェーンにユーザーconfidencialを保存します。しかし、ユーザーが他のタブを入力する前に、それをチェックする最良の方法は何ですか?許可されていないユーザーがログインタブ以外のタブに入るのを防ぐことができますか?私はすべてのビューコントローラでこの検証をしたくありません。タブベースのアプリケーションでユーザーのConfidencialをチェックする方法は?
1
A
答えて
1
これはUITabBarControllerDelegate
を使って行うことができます。
UIApplication
代理人の中でUITabBarController
に割り当ててください。
AppDelegateヘッダー:
@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>
{
//[...]
}
//[...]
@end
AppDelegateの実装:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//[...]
//instanciate and configure your tabbarcontroller
//[...]
//assign this instance as the delegate of our tabbarcontroller
tabBarController.delegate = self;
}
ユーザーが任意のタブを選択したときは、次のメソッドが呼び出されます。 NOを返すと、選択は実際には起こらないはずです。たとえば、その状況でユーザーに最初にログインするように警告するアラートを表示することができます。
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
//is the user logged in and did the user select any but the first tab?
if (!userLoggedIn &&
[tabBarController.viewControllers indexOfObject:viewController] != 0)
{ //nope->...
//force the user to the first tab
tabBarController.selectedIndex = 0;
//prevent the originally chosen tab selection
return NO;
}
//user is logged in, it is safe to select the chosen tab
return YES;
}
1
(アプリデリゲートのような)シングルトンクラスでメソッドを使用できます。すべてのタブでは、(appdelegate.userLogine)は他の{ //ポスト通知
} { //ユーザーがショービュー
ログインしている}場合、ユーザは
のようにログインしているかどうかを確認することができます
+0
ありがとうございます。しかし、すべてのタブコントローラでチェックロジックを呼び出す代わりに、このチェックを行う中心的な場所はありますか? – scottliyq
関連する問題
- 1. タブベースのアプリケーションでナビゲーションバーのボタンを設定する方法は?
- 2. テーブルベースのコントローラをタブベースのアプリケーションに追加する方法4.3.3
- 3. ビューコントローラが私のタブベースのアプリケーションで
- 4. アンドロイドスタジオで実行中のアプリケーションのデータベースをチェックする方法は?
- 5. タブベースのiphoneアプリケーションで[詳細]ビューの[編集]ボタンを削除するには
- 6. コアダンプファイルでJavaアプリケーションのメモリリークをチェックする方法は?
- 7. 竜巻オブジェクトのユーザーのクッキーをオリエンタルにチェックする方法は?
- 8. タブベースのアプリケーション(iphone iOS)でviewControllerにメッセージを送信
- 9. ユーザーのパーマを論理的にチェックする方法は?
- 10. クライアントのシミュレータで私のアプリケーションをチェックする方法
- 11. Telerik AppBuilder:NativeScriptを使用してタブベースのアプリケーションを作成するには
- 12. アプリケーション自体のチェックサムをチェックする方法は?
- 13. Node.js Webアプリケーションでユーザーのコードを実行する方法は?
- 14. DreamFactoryアプリケーションでユーザーとの関係を取得する方法は?
- 15. XPCOMタブベースの変数
- 16. 別のコンピュータからdevモードでgwtアプリケーションをチェックする方法
- 17. タブベースのiPhoneアプリでは、一部のViewControllerでタブバーを非表示にする方法はありますか?
- 18. ソケットioとアンドロイドチャットアプリケーションでオンラインでユーザーをチェックする方法
- 19. ユーザーがJavaアプリケーションのルートであるかどうかをチェック
- 20. 私のアプリケーションのスケーラビリティをチェックする方法
- 21. Rails RESTful API + Devise - ユーザーの資格情報をチェックする方法
- 22. タブベースのアプリケーション内の2つのタブ項目間でシーン/ビューレイアウトを共有
- 23. facebookユーザーでC#Webアプリケーションを認証する方法は?
- 24. iPhoneでGoogle Webアプリケーションをチェックする方法
- 25. ユーザーがLaravel Passportで有効かどうかチェックする方法
- 26. 誰かがユーザーであるかどうかをチェックする方法は?
- 27. 私のアプリケーションがデフォルトのランチャーであるかどうかをチェックする方法
- 28. データグリッドのチェックボックスの値をチェックする/チェックしない方法は?
- 29. nullのVariantをチェックする方法は?
- 30. JavaScriptの{}値をチェックする方法は?
+1ユーザーの資格情報にキーチェーンを使用する場合。 – Till