【问题标题】:iphone - PushViewController does not work With Reveal Controlleriphone - PushViewController 不适用于显示控制器
【发布时间】:2013-08-04 15:37:12
【问题描述】:

我正在创建一个 iphone 应用程序,其中我在主视图控制器类中有多个网格视图。所以,我想当我从主视图中选择一个网格单元时,应该加载一个 Reveal 控制器。布局看起来像

我的主视图控制器中有以下代码。

-(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,但没有任何效果。 谢谢。

【问题讨论】:

  • 这段代码最常见的可能问题:self有navigationController吗?其次你设置 self.revealController.rightViewController = rightViewController;然后你将 self.revealController 设置为不同的东西。

标签: iphone ios uitableview uinavigationcontroller


【解决方案1】:

我解决了:使用下面的代码..

    -(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;

【讨论】:

  • 谢谢,它正在工作
猜你喜欢
  • 1970-01-01
  • 2011-04-15
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 2017-03-06
相关资源
最近更新 更多