1
我有一個帶有6到7個選項卡的tabbar控制器,允許自定義(意味着用戶可以更改選項卡欄的顯示順序)。並且選項卡1,3,5,7要求用戶在查看視圖中的任何內容之前先登錄訪問權限。iOS - 在UITabBarControler最佳實踐中登錄視圖
我不知道如何識別哪個tabbar需要登錄訪問(我們可以創建@protocal或其他東西)。用戶登錄成功後。我不知道如何選擇用戶觸摸過的最後一個tabbar。
我使用的appdelegate在AppDelegate中
-(BOOL)tabBarController:(UITabBarController *)aTabBar shouldSelectViewController:(UIViewController *)viewController {
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
BOOL hasValidLogin = [standardUserDefaults boolForKey:@"hasValidLogin"];
if (hasValidLogin == NO && /* I don't know to find a controller which requires login access*/) {
[LoginView showModal:viewController delegate:self];
return NO;
}
return YES;
}
編譯標誌confiming到UITabBarControllerDelegate - 編譯標誌LoginDelegate方法 -
-(void)loginViewController:(LoginView *)loginViewController didLoginSuccess:NSString *)userName {
NSLog((@"%s [Line %d] "), __func__, __LINE__);
NSLog(@"userName = %@", userName);
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setBool:YES forKey:@"hasValidLogin"];
[standardUserDefaults synchronize];
[self.tabBarController setSelected:/* How do i find the last touched tabbar*/];
}
任何良好做法,配方和代碼片斷,你能不能告訴我是讚賞。
我正在閱讀亞光的iOS食譜。但我找不到與此相關的任何內容。
謝謝彼得!這是否是這樣做的首選方式?有沒有其他方法可以讓我們做到這一點? – mohan 2012-03-02 05:48:01
謝謝彼得!這是否是這樣做的首選方式?有沒有其他方法可以讓我們做到這一點?而當我試圖按照你描述的方式,我得到 - 「'NSInternalInconsistencyException',原因:'不允許更改由標籤欄控制器管理的標籤欄的代理。 ***第一次投擲時調用堆棧:「 – mohan 2012-03-02 05:57:08
我遇到了同樣的問題。任何人都可以幫忙 – VvDPzZ 2012-11-02 07:51:00