traitCollectionDidChange无法在Objective-C中正确触发

时间:2019-12-06 14:48:16

标签: objective-c ios-darkmode uitraitcollection

我在traitCollectionDidChange类中使用swift成功触发了dark mode的更改。像这样:

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    toggleDarkMode()
}

效果很好。每当我在模式之间切换时,它都会触发。但是对于我的objective-c类,delegate在暗和亮模式之间切换时不会触发。代码看起来类似:

- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [self toggleDarkMode];
} 

我只能通过退出view,然后再次返回来触发它。 objective-c代码中我缺少什么?

1 个答案:

答案 0 :(得分:1)

我可以通过调用super来实现:

 - (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
    [super traitCollectionDidChange: previousTraitCollection];
    [self toggleDarkMode];
}