I've figured out how to do it and here is how
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: Xamarin.Forms.ExportRenderer(typeof(BottomNavigationTabbedPage), typeof(ExtendedTabbedPageRenderer))]
public class ExtendedTabbedPageRenderer : TabbedRenderer
{
string darkBackgroundColor = "#303030"; //This is DarkPageBackgroundColor from the Application Resources page
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
MoreNavigationController.Delegate = new CustomMoreNavigationControllerDelegate();
}
}
internal class CustomMoreNavigationControllerDelegate : UINavigationControllerDelegate
{
public override void WillShowViewController(UINavigationController navigationController, UIViewController viewController, bool animated)
{
if (Application.Current.UserAppTheme == OSAppTheme.Dark)
{
viewController.NavigationController.NavigationBarHidden = false;
if (viewController.NavigationItem.Title == "Inspections")
{
UILabel titleLabel = new UILabel();
titleLabel.Text = "Inspections";
titleLabel.TextColor = UIColor.White;
viewController.NavigationItem.TitleView = titleLabel;
}
else
{
UILabel titleLabel = new UILabel();
titleLabel.Text = "More";
titleLabel.TextColor = UIColor.White;
viewController.NavigationItem.TitleView = titleLabel;
}
viewController.View.BackgroundColor = UIColor.FromRGB(48, 48, 48);
viewController.View.TintColor = UIColor.White;
if (viewController.View is UITableView tableView)
{
tableView.SeparatorColor = UIColor.White;
foreach (var cell in tableView.VisibleCells)
{
cell.BackgroundColor = UIColor.FromRGB(48, 48, 48);
cell.TextLabel.TextColor = cell.TintColor = UIColor.White;
}
}
}
else
{
viewController.NavigationController.NavigationBarHidden = false;
if (viewController.NavigationItem.Title == "Inspections")
{
UILabel titleLabel = new UILabel();
titleLabel.Text = "Inspections";
titleLabel.TextColor = UIColor.Black;
viewController.NavigationItem.TitleView = titleLabel;
}
else
{
UILabel titleLabel = new UILabel();
titleLabel.Text = "More";
titleLabel.TextColor = UIColor.Black;
viewController.NavigationItem.TitleView = titleLabel;
}
viewController.View.BackgroundColor = UIColor.White;
viewController.View.TintColor = UIColor.Black;
if (viewController.View is UITableView tableView)
{
tableView.SeparatorColor = UIColor.White;
foreach (var cell in tableView.VisibleCells)
{
cell.BackgroundColor = UIColor.White;
cell.TextLabel.TextColor = cell.TintColor = UIColor.Black;
}
}
}
}
}