请看下面的图片。请记住,我也在使用xcode 4.5.2。我在JASidePanels上遵循了github示例#2中的示例,但我似乎无法摆脱这个黑盒!否则,SidePanel实际上会按预期工作。=)
image of problem
我的centerViewController和leftViewController看起来也是一样的(代码如下)。但是当我尝试按照示例中所说的那样去做时,我就没有这样的运气了,所以我不得不继承JASidePanelController:
centerViewController.h:
#import "JASidePanelController.h"
@interface centerViewController : JASidePanelController
@endcenterViewController.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的代码,因为我只使用了左边和中间的代码。因此,我将代码重新设置为默认值,然后在模拟器中的应用程序上方留下了一个黑框。
提前感谢!
发布于 2013-03-18 07:37:38
不要为你的中心视图控制器继承JASidePanelController。可以把JASidePanelController想象成一个容器视图,它可以容纳3个视图控制器。以下是我的项目之一my 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的子类。
https://stackoverflow.com/questions/15467267
复制相似问题