【问题标题】:PagingMenuController swift library in obj-c project errorobj-c 项目错误中的 PagingMenuController swift 库
【发布时间】:2016-06-06 08:20:29
【问题描述】:

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

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

但是当我尝试使用视图控制器数组初始化 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。

你怎么看,这个错误的原因在哪里?

【问题讨论】:

    标签: ios objective-c swift import


    【解决方案1】:

    正如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 来展示它的工作原理。

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2016-05-16
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多