首页 > 解决方案 > traitCollectionDidChange 在 Objective-C 中没有正确触发

问题描述

traitCollectionDidChangeswift课堂上使用成功触发dark mode更改。像这样:

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

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

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

我只能通过退出来触发它view,然后再重新进入。我在objective-c代码中遗漏了什么吗?

标签: objective-cios-darkmodeuitraitcollection

解决方案


我得到它的工作调用超级:

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

推荐阅读