我已将 maui / blazor 混合应用程序从 Maui 8.0.20 更新到 8.0.90,以修复 iOS 18 中的黑屏问题。
现在它会在页面顶部弹出一个栏或带,中间有一个按钮。
它将应用程序的底部向下推,所以我看不到页脚。
这是什么以及如何删除它?
注意:这不会出现在 Windows 版本的应用程序中。
这是苹果为 iOS 18 实现的新标签栏行为。不幸的是,苹果似乎没有提供选择退出的方法。
在撰写本文时,我们正在弄清楚我们在 .NET MAUI SDK 中如何处理它,因为您在这里描述的情况似乎有点奇怪。
如果您想立即隐藏它,或者尝试这种新行为,您可以使用下面的
ShellRenderer
来访问新属性。
通过使用
TabBarHidden
并将其设置为 true
将会消失,但请记住这是新的选项卡栏,因此如果您想在应用程序中实现选项卡,通过隐藏它人们将无法在它们之间导航.
如果您对实现有任何想法,请在存储库的 .NET MAUI 问题中添加这些想法。
using CoreGraphics;
using Microsoft.Maui.Controls.Handlers.Compatibility;
using Microsoft.Maui.Controls.Platform.Compatibility;
using UIKit;
namespace ios18test;
public sealed class MyShellRenderer : ShellRenderer
{
private sealed class MyShellTabBarAppearanceTracker : ShellTabBarAppearanceTracker
{
public override void SetAppearance(UITabBarController controller, ShellAppearance appearance)
{
base.SetAppearance(controller, appearance);
//controller.Mode = UITabBarControllerMode.TabBar;
controller.TabBarHidden = true;
}
}
protected override IShellTabBarAppearanceTracker CreateTabBarAppearanceTracker() => new MyShellTabBarAppearanceTracker();
}
并在您的
MauiProgram.cs
中添加:
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
#if IOS
// This was added
.ConfigureMauiHandlers(handlers =>
{
handlers.AddHandler<Shell, MyShellRenderer>();
})
#endif
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});