2011-08-05 4 views
0

내 응용 프로그램에 내 주 메뉴에 TabController가있는 mainWindow.xib가 있습니다.iOS : 로그인 양식을 표시하는 방법은 무엇입니까?

이제 응용 프로그램의 로그인 양식을 갖고 싶습니다. 는 내가보기 (LoginViewController을)를 첨가하고, 처음에이보기 표시 : 좋아,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
// Override point for customization after application launch. 
// Add the tab bar controller's current view as a subview of the window 

self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 

LoginViewController *lvc = [[LoginViewController alloc]  initWithNibName:@"LoginViewController" bundle:nil]; 
lvc.delegate = self; 
[self.tabBarController presentModalViewController:lvc animated:false]; 
[lvc release]; 

return YES; 
} 

다음 내가보기에 내 로그인-검사를해야합니다.

이제이 후에보기를 닫으려고합니다. 나는 주위를 검색하고 여기에 문제 발견이 들어 :

#import <UIKit/UIKit.h> 

@interface Animexx3AppDelegate : NSObject <UIApplicationDelegate, 
          UITabBarControllerDelegate, LoginViewControllerDelegate> 
{ 
UIWindow *window; 
UITabBarController *tabBarController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

@end 

라인에서 "프로토콜 LoginViewControllerDelegate를 찾을 수 없습니다"의미 present modal view controller

내 프로젝트에 모든 것을 추가 할 수 있지만를이 코드에서 오류가 2/3.

라인에

추가 "lvc.delegate = 자기"나는 나에게 알려주는 경고 메시지가 Animexx3AppDalagte "호환되지 않는 유형에서"ID ".

잘못 임 했는가? 당신이 필요로하는

+0

'false' 부울 리터럴을 코코아와 동일한 리터럴 인 'NO'로 변경하십시오. 당신은 당신의 코드가 더 잘 읽히고, 옛날 Objective-C 프로그래머가 우리가 당신의 코드를 볼 때 나를 싫어하지 않을 것임을 알 것이다. :) – PeyloW

답변

2

"에 할당 " 당신이 LoginViewControllerDelegate 프로토콜을 선언 한 헤더 파일을 가져올 수 있습니다. 대부분의 가능성이 LoginViewController.h 파일을.

0

을이 많은 시간과 사투를 벌인 후, 우리는 시나리오를 정확히 이런 종류의 처리 CLHoppingViewController이라는 오픈 소스 라이브러리를 발표했다.

따라서, 귀하의 경우, 당신은 시작 흐름을 설명하기 위해 이런 짓을 할 것이다 :

UIViewController *loginViewController; 
UIViewController *mainViewController; 

if (user_not_logged_in) { 
    [self hopToViewController:loginViewController then:^{ 
    [self hopToViewController:mainViewController then:nil]; 
    }]; 
} 
else { 
    [self hopToViewController:mainViewController then:nil]; 
} 

도서관을 훨씬 더 고급 조건 시퀀스를 지원할 수 있습니다. 예를 들어 스플래시 화면을 표시하고 UX에 조건부로 표시 할 수 있습니다.

간단한 자습서 here이 있습니다.

관련 문제