ios - obj-c 项目中的 PagingMenuController swift 库错误

标签 ios objective-c swift import

在我的 Objective-C 项目中,我曾经使用 PageMenu用于用户友好导航的库,但我注意到无限的 menuScrollView 和居中选定的菜单项看起来比默认的 PageMenu 漂亮得多。

当我发现PagingMenuController时我尝试将这个 swift 库导入到 obj-c 项目中。一切似乎都很好,头文件已正确创建,已授予对 PagingMeniController 类方法的访问权限。

但是当我尝试使用带有代码的 View Controller 数组来初始化 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) 

fatal error: unexpectedly found nil while unwrapping an Optional value

似乎 UIApplication.sharedApplication().keyWindow!.bounds.size 返回 nil。

你觉得这个错误的原因在哪里?

最佳答案

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展示它是如何工作的。

关于ios - obj-c 项目中的 PagingMenuController swift 库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652625/

相关文章:

ios - 如何在iOS中通过BLE获取设备的MAC

iphone - 在 UIWebview 中重新加载 gif 图像

swift - 如何从另一个 Controller 快速调用函数

ios - 如何使我的 iOS 演示应用程序尽可能地防崩溃?

ios - 启用以快速获取 sizeForItemAtIndexPath 中的 Collection View Cell 对象

ios - [NSObject : AnyObject] ?' does not have a member named ' subscript' in Xcode 6 Beta 6

iOS:从 CNContact 获取数字 key

ios - 通过 segue 传递对象

ios - dyld:未加载库:@rpath/libswiftCore.dylib

ios - 检测符合协议(protocol)的对象类?