在我的objective-c项目中,我曾经使用PageMenu库进行用户友好的导航,但我注意到无限的menuScrollView和居中选择的菜单项看起来比默认的PageMenu更漂亮。
当我发现PagingMenuController时,我试图将这个快速库导入到obj-c项目中。一切似乎都很好,头文件已正确创建,授予了对PagingMeniController类方法的访问权限。
但是当我尝试使用带有代码的viewcontrollers数组初始化PagingMenuController类时:
#import "moyoutlet-Swift.h"
UIViewController* vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor redColor];
vc.menuItemDescription = @"vc";
UIViewController* vc1 = [[UIViewController alloc] init];
vc1.view.backgroundColor = [UIColor whiteColor];
vc1.menuItemDescription = @"vc1";
NSArray* arr = [NSArray arrayWithObjects:vc,vc1, nil];
PagingMenuController* pvc = [[PagingMenuController alloc] initWithViewControllers:arr];
[self.view addSubview:pvc.view];
xcode在MenuItemView.swift方法中显示错误
calculateLabelSize(label: UILabel, windowSize: CGSize = UIApplication.sharedApplication().keyWindow!.bounds.size)
致命错误:在打开Optional时意外发现nil 值
似乎UIApplication.sharedApplication()。keyWindow!.bounds.size返回nil。
你怎么想,这个错误的原因在哪里?
答案 0 :(得分:0)
正如Acecilia所述,问题在this discussion中有所描述,解决方法是将所有内容都包含在 - (void)viewDidAppear中:
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
FirstViewController* fvc = [sb instantiateViewControllerWithIdentifier:@"FirstViewController"];
fvc.title = @"First View Controller";
fvc.view.backgroundColor = [UIColor grayColor];
SecondViewController* svc = [sb instantiateViewControllerWithIdentifier:@"SecondViewController"];
svc.title = @"Second View Controller";
svc.view.backgroundColor = [UIColor lightGrayColor];
PagingMenuController* pvc = [[PagingMenuController alloc] initWithViewControllers:@[fvc,svc]];
[self addChildViewController:pvc];
[self.view addSubview:pvc.view];
}
我已创建example project以显示其工作原理。