Ios 如何将这一目标c traitCollection转化为swift?

Ios 如何将这一目标c traitCollection转化为swift?,ios,objective-c,swift,Ios,Objective C,Swift,我正试图从这个链接用目标C翻译这段代码 以下是我试图翻译的代码: @interface RDTraitCollectionOverrideViewController : UIViewController { BOOL _willTransitionToPortrait; UITraitCollection *_traitCollection_CompactRegular; UITraitCollection *_traitCollection_AnyAny; } @end @impleme

我正试图从这个链接用目标C翻译这段代码

以下是我试图翻译的代码:

@interface RDTraitCollectionOverrideViewController : UIViewController {
BOOL _willTransitionToPortrait;
UITraitCollection *_traitCollection_CompactRegular;
UITraitCollection *_traitCollection_AnyAny;
}

@end

@implementation RDTraitCollectionOverrideViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setUpReferenceSizeClasses];
}

- (void)setUpReferenceSizeClasses {
    UITraitCollection *traitCollection_hCompact = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
UITraitCollection *traitCollection_vRegular = [UITraitCollection traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassRegular];
_traitCollection_CompactRegular = [UITraitCollection traitCollectionWithTraitsFromCollections:@[traitCollection_hCompact, traitCollection_vRegular]];

UITraitCollection *traitCollection_hAny = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassUnspecified];
UITraitCollection *traitCollection_vAny = [UITraitCollection traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassUnspecified];
_traitCollection_AnyAny = [UITraitCollection traitCollectionWithTraitsFromCollections:@[traitCollection_hAny, traitCollection_vAny]];
}

-(void)viewWillAppear:(BOOL)animated {
_willTransitionToPortrait = self.view.frame.size.height > self.view.frame.size.width;
}

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
_willTransitionToPortrait = size.height > size.width;
}

-(UITraitCollection *)overrideTraitCollectionForChildViewController:(UIViewController *)childViewController {
UITraitCollection *traitCollectionForOverride =           (_willTransitionToPortrait) ? _traitCollection_CompactRegular :    _traitCollection_AnyAny;
return traitCollectionForOverride;
}
@end
}

我想我几乎拥有了所有功能,但最后一个功能我不知道它转换成什么。非常感谢您的帮助。

我认为您在上一个函数中缺少“override”,请尝试用以下代码替换:

override func overrideTraitCollectionForChildViewController(childViewController: UIViewController) -> UITraitCollection! {
    //
}
以下是完整的代码:

导入UIKit
类ViewController:UIViewController{
变量:Bool=false
var compactRegular=UITraitCollection()
var anyAny=UITraitCollection()
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
setUpReferenceSizeClasses()
}
func setUpReferenceSizeClasses(){
var traitCollection\u hCompact=UITraitCollection(horizontalSizeClass:UIUserInterfaceSizeClass.Compact)
var traitCollection\u vRegular=UITraitCollection(垂直大小类:UIUserInterfaceSizeClass.Regular)
compactRegular=UITraitCollection(traitsFromCollections:[traitCollection\u hCompact,traitCollection\u vRegular])
var traitCollection\u hAny=UITraitCollection(horizontalSizeClass:UIUserInterfaceSizeClass.Unspecified)
var traitCollection\u vAny=UITraitCollection(垂直大小类:UIUserInterfaceSizeClass.Unspecified)
anyAny=UITraitCollection(traitsFromCollections:[traitCollection\u hAny,traitCollection\u vAny])
}
覆盖功能视图将出现(动画:Bool){
WillTransitionTorait=self.view.frame.size.height>self.view.frame.size.width
}
重写func ViewWillTransitionSize(大小:CGSize,带TransitionCoordinator协调器:UIViewControllerTransitionCoordinator){
WillTransitionTorait=size.height>size.width
}
override func overrideTraitCollectionForChildViewController(childViewController:UIViewController)->UITraitCollection{
//
var traitCollectionForOverride=(WilltTransitionToractive)?compactRegular:anyAny
返回traitCollectionForOverride;
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
}
override func overrideTraitCollectionForChildViewController(childViewController: UIViewController) -> UITraitCollection! {
    //
}