JASidePanels使用故事板的示例-2:崩溃

suz*_*uzu 4 open-source objective-c storyboard ios

我正在尝试使用storyboard实现JASidePanels example2. https://github.com/gotosleep/JASidePanels#example-2-storyboards

-(void)awakeFromNib
{
  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
  [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}
Run Code Online (Sandbox Code Playgroud)

如果我在上面的代码到CenterViewController.m这是如在示例2 MySidePanelController.m作为同一加入,则该应用被应声象下面.

https://dl.dropboxusercontent.com/u/6655378/stack1.png

-(void)awakeFromNib
{
//  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
//  [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
//  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}
Run Code Online (Sandbox Code Playgroud)

如果我像上面那样注释掉,应用程序的工作方式如下. 载荷大小://dl.dropboxusercontent.com/u/6655378/stack2.png

我是iOS的新手.你能告诉我有什么问题吗?

我的环境.

  • XCode:版本4.6.2
  • iOS SDK:6.1
  • 模拟器:iPhone 6.1

Mox*_*oxy 5

您通过调用-awakeFromNib中心视图控制器中的代码来导致堆栈溢出,因为它将另一个中心视图控制器设置为其中心面板并按此方式直到应用程序崩溃.

您需要具有JASidePanelController实现其中的子类-awakeFromNib以及您设置为面板的其他3个视图控制器.

#import "JASidePanelController.h"

@interface MyPanelsController : JASidePanelController

@end


#import "MyPanelsController.h"

@implementation MyPanelsController

-(void)awakeFromNib
{
    [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
    [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
    [self setRightPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}

@end
Run Code Online (Sandbox Code Playgroud)

在你的故事板中拖动a UIViewController并将其类MyPanelsController设置为并将其设置为初始视图控制器.