JASidePanels黑匣子

时间:2013-03-17 22:54:12

标签: ios cocoa-touch

请参阅下图。请记住,我也在使用xcode 4.5.2。我跟随github示例#2中的JASidePanels上的示例,我似乎无法摆脱这个黑盒子!否则,SidePanel实际上按预期工作。 =)

image of problem

我的centerViewController和leftViewController看起来也一样(下面的代码)。但是当我尝试这样做时,就像说这样做,我没有任何运气,所以我不得不继承JASidePanelController:

centerViewController.h:

#import "JASidePanelController.h"

@interface centerViewController : JASidePanelController

@end

centerViewController.m

#import "centerViewController.h"

@interface centerViewController ()

@end

@implementation centerViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

我能错过一些东西吗?我已经注释掉几行代码来删除主JASidePanelController本身上的rightViewController,认为这可能会导致问题而且只会导致更多问题。我没有示例中的rightViewController代码,因为我只使用左侧和中间。所以我将代码设置回默认值,我在模拟器中的应用程序上留下了一个黑框。

提前致谢!

1 个答案:

答案 0 :(得分:1)

不要从JASidePanelController继承您的中心视图控制器。将JASidePanelController视为可容纳3个视图控制器的容器视图。以下是我AppDelegate项目中的一个示例:

self.panelController = [[JASidePanelController alloc] init];

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *centerViewController = [storyboard instantiateInitialViewController];
self.panelController.centerPanel = centerViewController;
self.panelController.delegate = centerViewController;
self.panelController.rightPanel = [[DBRightViewController alloc] init];
self.panelController.leftPanel = [[DBLeftViewController alloc] init];

可以这样想,你需要一个JASidePanelViewController,它将保存你的其他视图控制器。这可以是JASidePanelViewController的子类,但只要您将引用存储在某处,就可能不需要它。在我的示例中,我将panelController作为属性存储在我的AppDelegate

然后,每个viewcontrollers都将是UIViewController

的子类