2012-05-14 6 views
1

Я использую splitViewController в своем приложении для iPad, но до этого у меня есть логин и при успешном завершении проверки я обновляю представление root и detail. Проблема в том, что когда я загружаю mainview, ничего не происходит, я пытаюсь нажимать любые виды и событий нет.Неуравновешенные вызовы для перехода на начало/конец для <RevealController: 0xe9069b0>

И пока я загружаю мнение Войти модально Я получаю эту ошибку: «несбалансированные вызовы начала/конца внешний вид переходов для

я сделать вид входа в MainView (frontViewController) с помощью этого:

-(void)displayLoginView:(BOOL)animated{ 
LoginView *loginController = [[LoginView alloc] initWithNibName:@"LoginView" bundle:nil]; 
[self presentModalViewController:loginController animated:YES]; 

}

- (void)viewDidLoad{ 
[super viewDidLoad]; 

//Add logout button 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem Alloc] initWithTitle: @ "Выход" стиль: UIBarButtonItemStyleBordered цель : self action: @selector (logout)]; // Если вы еще не вошли в систему, отобразите окно входа в систему [self displayLoginView: NO]; }

-(void)logout{ 
[self displayLoginView:YES]; 

}

и appdelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

FrontViewController *frontViewController; 

RearViewController *rearViewController; 

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ 

frontViewController = [[FrontViewController alloc]   initWithNibName:@"FrontViewController_iPhone" bundle:nil]; 

rearViewController = [[RearViewController alloc] initWithNibName:@"RearViewController_iPhone" bundle:nil]; 
} 
else{ 
    frontViewController = [[FrontViewController alloc] initWithNibName:@"FrontViewController_iPad" bundle:nil]; 

    rearViewController = [[RearViewController alloc] initWithNibName:@"RearViewController_iPad" bundle:nil]; 
} 

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController]; 
    RevealController *revealController = [[RevealController alloc] initWithFrontViewController:navigationController rearViewController:rearViewController]; 
self.viewController = revealController; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
return YES; 

}

Кто-нибудь может мне помочь?

Большое спасибо!

ответ

13

Проверьте свои методы viewWillAppear:animated:, viewDidAppear:animated:, viewWillDisappear:animated:, and viewDidDisappear:animated:, либо вы их не реализуете, либо вы должны вызвать [super viewDid ....]. У меня был тот же pb, причина была в том, что должна была активировать ATToInterfaceOrientation: один из них возвращал false, а другие возвращались true, я установил их, чтобы они возвращали то же самое. Все было нормально.

+2

Я полностью забыл назвать супер в этих двух методах ... У меня был tabBarController со встроенным контроллером навигации, а в tabBarController я перезаписывал viewWillAppear и viewDidAppear, но не вызывал [super viewWillAppear] и [super viewDidAppear] ], и это то, что заставляет это сообщение появляться, а также анимацию, чтобы она не была гладкой. Спасибо Abzamon, надеюсь, вы скоро получите ответ: – Roger

+0

У меня была * точно такая же проблема, как у Роджера. Спасибо Абзамон, это исправлено! – matsr

+2

неправильный ответ. это больше относится к внешнему виду взгляда, заявив, что он не получает правильную процедуру внешнего вида. –