我正在尝试使用故事板实现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"]];
}如果我将上面的代码添加到与example2中的MySidePanelController.m相同的CenterViewController.m中,应用程序就会崩溃,如下所示。

-(void)awakeFromNib
{
// [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
// [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
// [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}如果我像上面那样注释掉,这个应用程序就会像下面这样工作。

我是iOS的新手。你能告诉我怎么回事吗?
我的环境。
发布于 2013-05-06 22:18:18
您正在通过调用中央视图控制器中的-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在情节提要中,拖动一个UIViewController并将其类设置为MyPanelsController,并将其设置为初始视图控制器。
https://stackoverflow.com/questions/16402314
复制相似问题