2013-08-03 4 views
1

Я создаю приложение iphone, где у меня есть число видов сетки в классе контроллера основного вида. Поэтому, когда я выбираю ячейку сетки из основного вида, я должен загрузить контроллер Reveal. Схема выглядитiphone - PushViewController не работает с контроллером Reveal

enter image description hereenter image description here

У меня есть следующий код в моем главном View Controller.

-(void) gridView:(UzysGridView *)gridView didSelectCell:(UzysGridViewCell *)cell 
atIndex:(NSUInteger)index 
{ 
if (index == 0){ 
    FrontViewController *frontViewController = [[FrontViewController alloc] 
    init]; 

    RightViewController *rightViewController = [[RightViewController alloc] init]; 

    UINavigationController *frontNavigationController = [[UINavigationController alloc] 
    initWithRootViewController:frontViewController]; 

    SWRevealViewController *mainRevealController = [[SWRevealViewController alloc] 
                initWithRearViewController:nil 
    frontViewController:frontNavigationController]; 

    mainRevealController.delegate = self; 

    self.revealController.rightViewController = rightViewController; 

    self.revealController = mainRevealController; 

    [self.navigationController pushViewController:self.revealController animated:YES]; 
} 

здесь в главном контроллере представления .h файл,

@property (strong, nonatomic) SWRevealViewController *revealController; 

Также я объявляю SWRevealViewControllerDelegate. Проблема в том, что этот self.revealController не загружается/не отображается. Я тоже пробовал с App Delegate, но ничего не работает. спасибо.

+0

Наиболее распространенные возможные проблемы с этим кодом: ли само собой navigationController? Во-вторых, вы устанавливаете self.revealController.rightViewController = rightViewController; и затем вы устанавливаете self.revealController на что-то другое. – Rickye

+0

Спасибо @Rickye –

ответ

2

Я решил это: Используйте приведенный ниже код ..

-(void) gridView:(UzysGridView *)gridView didSelectCell:(UzysGridViewCell *)cell 
    atIndex:(NSUInteger)index { 

    if (index == 0){ 
    FrontViewController *frontViewController = [[FrontViewController alloc] 
    init]; 

    myNavigationController = [[UINavigationController alloc] 
    initWithRootViewController:frontViewController]; 

    SWRevealViewController *revealController = [[SWRevealViewController alloc] 
    initWithRearViewController:nil frontViewController:myNavigationController]; 

    revealController.delegate = self; 

    RightViewController *rightViewController = 
    [[RightViewController alloc] init]; 

    rightViewController.view.backgroundColor = [UIColor greenColor]; 

    revealController.rightViewController = rightViewController; 

    self.viewController1=revealController; 

    [self presentViewController:self.viewController1 animated:YES completion:nil]; 
        } 
    } 

И в Class.h файл

 @property(nonatomic, strong) UINavigationController *myNavigationController; 

    @property(nonatomic, strong) SWRevealViewController *viewController1; 
+0

Спасибо, это работает –

+0

ур приветствую @NamanVaishnav! –

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