2012-02-17 1 views
3

Я играю с большой библиотекой ZUUIRevealController. Однако я не могу запрограммировать его, чтобы пользователь мог набрать ячейку в заднем контроллере. Затем задний контроллер должен уйти и отобразить новый viewcontroller на лицевой панели.ZUUIRevealController - нажмите вид на передней панели, нажав на ячейку таблицы в заднем контроллере

Я настройки моего проекта, как это:

VGViewController *frontViewController; 
RevealController *rearViewController; 

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

self.navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController]; 

rearViewController = [[RevealController alloc] initWithNibName:@"RevealController" bundle:nil]; 

ZUUIRevealController *revealController = [[ZUUIRevealController alloc] initWithFrontViewController:self.navigationController rearViewController:rearViewController]; 

[frontViewController release]; 
[rearViewController release]; 

self.window.rootViewController = revealController; 
[revealController release]; 
[self.window makeKeyAndVisible]; 
return YES; 

Я надеюсь, что кто-то может мне помочь! : D

ответ

4

рад, что вы нашли симпатию в библиотеке.

Ваш проект, кажется, правильно настроен, если я ничего не пропустил, хотя логически я не могу следить за тем, как работает rearViewController < => RevealController, но это нормально.

Чтобы ответить на ваш вопрос: Для того, чтобы отобразить различные frontViewController, скажем, нажав на ячейку в rearViewController вам нужно вызвать этот кусок кода в соответствующем методе (например: Tableview: didSelelctRowAtIndexPath :)

// RearViewController.m file in some method: 
// - Let's grab a reference to the revealController first: 
ZUUIRevealController *revealController = [self.parentViewController isKindOfClass:[ZUUIRevealController class]] ? (ZUUIRevealController *)self.parentViewController : nil; 

// Check if we're not attempting to swap the current FrontViewController for exactly the same controller over again... 
if (![revealController.frontViewController isKindOfClass:[NewFrontViewController class]]) 
{ 
     NewFrontViewController *newFrontViewController; 

     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
     { 
      newFrontViewController = [[NewFrontViewController alloc] initWithNibName:@"NewFrontViewController_iPhone" bundle:nil]; 
     } 
     else 
     { 
      newFrontViewController = [[NewFrontViewController alloc] initWithNibName:@"NewFrontViewController_iPad" bundle:nil]; 
     } 

     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:newFrontViewController]; 
     [newFrontViewController release]; 
     [revealController setFrontViewController:navigationController animated:NO]; 
     [navigationController release]; 
} 

Что этот кусок коды делает, он захватывает ссылку на родительский rearViewControllers (который должен быть revealController), и присваивает новый экземпляр frontViewController к нему по телефону [revealController setFrontViewController:navigationController animated:NO];

Надеется, что это решает проблему: -)

+0

Спасибо за ответ. Я не могу заставить его работать. У меня есть четыре элемента в моем массиве, и когда я использую вышеуказанный код, ничего не происходит. В представлении таблицы я могу проверить, соответствует ли текст удаленных ячеек строке, а затем выполняет навигацию на основе этого. Могу ли я что-нибудь сделать здесь? – Jonas

+0

Вы посмотрели обновленный пример проекта, который я предоставляю библиотеке две недели назад? Я установил таблицу в rearView, и она меняет frontViewController на другую. - Но да, конечно, вы можете проверить, соответствует ли текст тому, что вы хотите, а затем инициировать действие. - Идея в основном очень проста, и ваша проблема, похоже, не лежит в библиотеке. Все, что вам нужно сделать, это создать новый диспетчер представлений и вызвать '[opensController setFrontViewController: newViewController animated: NO]'. Точно так же, d call '[self.navigationController pushViewController: XXX анимированный: YES];' – pkluz

+0

благодарит много, что он работает! : D – Jonas

Смежные вопросы