gpt4 book ai didi

iphone - 带有模态 UIViewController 的透明背景

转载 作者:行者123 更新时间:2023-12-03 18:19:51 32 4
gpt4 key购买 nike

我有一个困境,我想向用户呈现一个半透明的 View 。

我通过实验发现,如果我只是将透明 View 推到导航 Controller 堆栈的顶部,它不会呈现我想要的透明度级别。因此,我决定简单地将 View 添加为堆栈顶部当前 View 的 subview 。

这个解决方案有效,下面的 View 仍然可见,并且 View 是“半模态”的。问题是,如果父 View 继承自 UITableViewController (就像我的那样),那么我“推”到它上面的 View 不会覆盖顶部的导航栏。

我真的不想陷入每次推送此 View 时都被迫启用/禁用导航栏上的控件的情况,所以我想知道是否有人知道我可以使用的任何解决方案我推到 UITableViewController 上的 View 实际上会“推过”导航栏吗?

最佳答案

有趣的是,我昨天也在做同样的事情。不幸的是,这似乎是不可能的。一旦模态视图 Controller 就位,之前的 View 就会隐藏。看这个previous question on the topic .

您仍然可以使用已设置的 View Controller 和 NIB 文件 - 这是我的示例代码

- (void)showUpgrade {
[self.upgradeVC viewWillAppear:NO];
[self.view addSubview:self.upgradeVC.view];
[self.upgradeVC viewDidAppear:NO];
}

- (void)hideUpgrade {
[self.upgradeVC viewWillDisappear:NO];
[self.upgradeVC.view removeFromSuperview];
[self.upgradeVC viewDidDisappear:NO];
}

- (UpgradeViewController *)upgradeVC {
if (_upgradeVC == nil) {
_upgradeVC = [[UpgradeViewController alloc] initWithNibName:[NSString stringWithFormat:@"UpgradeView_%@", self.deviceType] bundle:nil];
_upgradeVC.delegate = self;
}
return _upgradeVC;
}

您需要在模态视图 Controller 中存储对父 View Controller 的引用,以便可以访问 -hide 方法。我通过一位代表完成了这件事。

如果你希望它从屏幕底部向上动画,向 -show-hide 添加一些动画也很容易 - 我也是懒得做这个。

关于iphone - 带有模态 UIViewController 的透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578614/

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