나는 탭 기반의 아이폰 애플리케이션을 만들고 있는데, 각 탭의 모든 정보는 사용자와 관련이있다. 즉, 사용자는 각 탭으로 이동하기 전에 로그인해야한다. 나는 첫 번째 탭에 사용자 이름/암호 입력을 넣었고 로그인 성공 후 키 체인에 사용자 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. Bonjour 기반 iOS 응용 프로그램에서 복수 주소를 확인하는 방법은 무엇입니까?
- 3. Ruby 응용 프로그램에서 사용자 정의 예외가 발생했는지 확인하는 방법은 무엇입니까?
- 4. 탭 표시 줄 기반 응용 프로그램에서 탭 표시 줄 숨기기
- 5. 응용 프로그램에서 제공하는 서비스를 확인하는 방법은 무엇입니까?
- 6. 탭 기반 응용 프로그램
- 7. UINavigationBar가있는보기 기반 응용 프로그램에서 TabBar
- 8. 컨트롤이 윈도우 응용 프로그램에서 작업을 수행 중임을 확인하는 방법은 무엇입니까?
- 9. android 응용 프로그램에서 사용자와 암호를 확인하고 확인하는 방법은 무엇입니까?
- 10. Windows Mobile 기반 응용 프로그램에서 로그 아웃하는 방법은 무엇입니까?
- 11. 탭 막대 컨트롤러 기반 응용 프로그램에서 구성 변경보기 저장
- 12. 탭 기반 iPhone 응용 프로그램에서 일부 ViewControllers에서 tabbar를 숨기는 방법?
- 13. 탭 막대 응용 프로그램에서 XIB를 변경하는 방법은 무엇입니까?
- 14. 웹 응용 프로그램에서 탭 컨테이너를 구현하는 방법은 무엇입니까?
- 15. Caliburn.Micro 응용 프로그램에서 ShellViewModel에 액세스하는 방법은 무엇입니까?
- 16. restlet 기반 응용 프로그램에서 통신 시간을 향상시키는 방법은 무엇입니까?
- 17. Java에서 Spring 기반 응용 프로그램에서 멀티 스레딩을 구현하는 방법은 무엇입니까?
- 18. Cocoa 문서 기반 응용 프로그램에서 문서를 닫는 방법은 무엇입니까?
- 19. 캔버스 기반 응용 프로그램에서 숫자 키패드를 다루는 방법은 무엇입니까?
- 20. Java 응용 프로그램에서 클레임 기반 인증을 구현하는 방법은 무엇입니까?
- 21. 보기 기반 응용 프로그램에서 입자 효과를 사용하는 방법은 무엇입니까?
- 22. 문서 기반 응용 프로그램에서 사파리의 tabView를 만드는 방법은 무엇입니까?
- 23. 지도 기반 iPhone 응용 프로그램에서 오디오 파일을 재생하는 방법은 무엇입니까?
- 24. 봄 DAO 기반 응용 프로그램에서 XML을 구현하는 방법은 무엇입니까?
- 25. 사용자 연결을 확인하는 방법은 무엇입니까?
- 26. Seam 기반 응용 프로그램에서 Spring JDBCTemplate
- 27. 윈도우 기반 응용 프로그램에서 테이블 만들기
- 28. .net의 Windows 기반 응용 프로그램에서 타이머 컨트롤?
- 29. brownfield 응용 프로그램을 사용자 기반 표준 시간대로 변환하는 방법은 무엇입니까?
- 30. DRM이 iPhone 응용 프로그램에서 제거되었는지 프로그래밍 방식으로 확인하는 방법은 무엇입니까?
+1 사용자 자격 증명에 키 체인을 사용하는 경우. – Till