gpt4 book ai didi

iphone - 在 RemoteViewControllers 上禁用 UIAppearance-API

转载 作者:可可西里 更新时间:2023-11-01 17:09:46 26 4
gpt4 key购买 nike

因此,我使用外观 API 对所有 View 进行样式设置。F.e.我使用以下方式设置我的 UINavigationBar 样式:

[[UINavigationBar appearance] setBackgroundImage:navigationBarBgImage forBarMetrics:UIBarMetricsDefault];

我想利用外观 api 的优势,将我所有的 UINavigationBar 都放在一个地方(因为我有多个),所以我不想只做一些子类化因为造型原因。

我还会弹出一些 MFMessageComposeViewController 和一个 SLComposeViewController 以发布到 imessage 或 facebook。

我的问题是,如果我尝试在 facebook 上选择相册或在 imessage modalview 上选择联系人,会发生这种情况:

enter image description here

查看imessage模态视图的递归描述:

$0 = 0x1f1f1320 <UIWindow: 0x1e5c8900; frame = (0 0; 320 568); layer = <UIWindowLayer: 0x1e5c8a00>>
| <UILayoutContainerView: 0x1e592860; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x1e592910>>
| | <UINavigationTransitionView: 0x1f1c88a0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x1f1c8960>>
| | | <UIViewControllerWrapperView: 0x1f1ee090; frame = (0 20; 320 548); autoresize = W+H; layer = <CALayer: 0x1f2f9560>>
| | | | <UIView: 0x1f2f3d20; frame = (0 0; 320 548); autoresize = W+H; layer = <CALayer: 0x1f2f3d80>>
| | | | | <_UISizeTrackingView: 0x1f2effd0; frame = (0 0; 320 548); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x1f2f00b0>>
| | | | | | <_UIRemoteView: 0x1f2f01e0; frame = (0 0; 320 568); transform = [0.5, -0, 0, 0.5, -0, 0]; userInteractionEnabled = NO; layer = <CALayerHost: 0x1f2f0330>>

有什么想法最好切换回默认模式吗?

最佳答案

你最好的选择是将一个或另一个子类化。否则你会到处撤销样式。我将通过以下两种方式之一进行操作:

一个是继承 UINavigationController 并为该类包含的 UINavigationBar 设置样式:

UINavigationBar *navigationBarProxy = [UINavigationBar appearanceWhenContainedIn:[MyNavigationController class], nil]; // 
[navigationBarProxy setBackgroundImage:navigationBarBackgroundImage forBarMetrics:UIBarMetricsDefault];
// and so on

另一种方法是子类化 UINavigationBar,设置该类的外观,并以这种方式实例化您的 UINavigationController:

UINavigationController *navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[MyNavigationBar class] toolbarClass:nil];
// navigationController now has a navigationBar of your preferred type

关于iphone - 在 RemoteViewControllers 上禁用 UIAppearance-API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com