0

请看下图。请记住,我也在使用 xcode 4.5.2。我按照来自github Example #2的 JASidePanels 上的示例进行操作,但我似乎无法摆脱这个黑匣子!否则 SidePanel 实际上会按预期工作。=)

问题图片

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

中心视图控制器.h:

#import "JASidePanelController.h"

@interface centerViewController : JASidePanelController

@end

中心视图控制器.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 的代码,因为我只使用左侧和中心。因此,我将代码设置回其默认值,并且在我的模拟器中的应用程序上留下了一个黑框。

提前致谢!

4

1 回答 1

1

不要从JASidePanelController您的中心视图控制器继承。将 aJASidePanelController视为可以容纳 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.

然后,您的每个视图控制器都将是UIViewController.

于 2013-03-17T23:37:37.530 回答