iOS "More" Tab 记住上次打开的页面问题 (xamarin)
iOS "More" Tab remember last open page issue (xamarin)
我有一个问题,在 iOS“更多”选项卡上表现异常。
使用 TabBar 和 TabbedPages。
当我启动应用程序时,我看到 4 个选项卡 (1-4) 和“更多”选项卡(由 xamarin.forms 自动创建)。
我打开“更多”选项卡以查看不适合的其余选项卡列表。我将看到我的列表“TabPage5”和“TabPage6”。 (下图)
我选择例如TabPage5。之后,我将访问主栏上的其中一个选项卡 (tabPage1-4)。
当我尝试再次打开“更多”选项卡以查看 TabPage5 和 TabPage6 的列表时 -> 我已经了解了 TabPage5 的详细信息(上次从“更多”选项卡打开)。
它似乎记得我上次访问过哪个页面,或者我没有正确离开“更多”选项卡中的那个页面。
标签栏:
- TabPage1
- TabPage2
- TabPage3
- TabPage4
- 更多
- TabPage5
- TabPage6
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/tabbed-page
任何人都可以给我一些建议。当我单击“更多”选项卡时,我总是希望看到默认不可见的选项卡列表。
谢谢
创建 TabbedPage
的自定义渲染器并在您 select “更多”选项卡中的选项卡时调用 PopToRootViewController
:
[assembly: ExportRenderer(typeof(TabbedPage), typeof(MainPageRenderer))]
namespace TabbedPageWithNavigationPage.iOS
{
public class MainPageRenderer : TabbedRenderer
{
MainPage _page;
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
_page = e.NewElement as MainPage;
else
_page = e.OldElement as MainPage;
try
{
if (ViewController is UITabBarController tabBarController)
tabBarController.ViewControllerSelected += OnTabbarControllerItemSelected;
}
catch (Exception exception)
{
Debug.WriteLine(exception);
}
}
void OnTabbarControllerItemSelected(object sender, UITabBarSelectionEventArgs eventArgs)
{
Debug.WriteLine("Tab Tapped");
var tabbarVC = ViewController as UITabBarController;
var tabIndex = tabbarVC.SelectedIndex;
if (tabIndex == null || tabIndex > 3)
{
tabbarVC.MoreNavigationController.PopToRootViewController(false);
}
}
}
}
我有一个问题,在 iOS“更多”选项卡上表现异常。 使用 TabBar 和 TabbedPages。
当我启动应用程序时,我看到 4 个选项卡 (1-4) 和“更多”选项卡(由 xamarin.forms 自动创建)。 我打开“更多”选项卡以查看不适合的其余选项卡列表。我将看到我的列表“TabPage5”和“TabPage6”。 (下图)
我选择例如TabPage5。之后,我将访问主栏上的其中一个选项卡 (tabPage1-4)。 当我尝试再次打开“更多”选项卡以查看 TabPage5 和 TabPage6 的列表时 -> 我已经了解了 TabPage5 的详细信息(上次从“更多”选项卡打开)。
它似乎记得我上次访问过哪个页面,或者我没有正确离开“更多”选项卡中的那个页面。
标签栏:
- TabPage1
- TabPage2
- TabPage3
- TabPage4
- 更多
- TabPage5
- TabPage6
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/tabbed-page
任何人都可以给我一些建议。当我单击“更多”选项卡时,我总是希望看到默认不可见的选项卡列表。 谢谢
创建 TabbedPage
的自定义渲染器并在您 select “更多”选项卡中的选项卡时调用 PopToRootViewController
:
[assembly: ExportRenderer(typeof(TabbedPage), typeof(MainPageRenderer))]
namespace TabbedPageWithNavigationPage.iOS
{
public class MainPageRenderer : TabbedRenderer
{
MainPage _page;
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
_page = e.NewElement as MainPage;
else
_page = e.OldElement as MainPage;
try
{
if (ViewController is UITabBarController tabBarController)
tabBarController.ViewControllerSelected += OnTabbarControllerItemSelected;
}
catch (Exception exception)
{
Debug.WriteLine(exception);
}
}
void OnTabbarControllerItemSelected(object sender, UITabBarSelectionEventArgs eventArgs)
{
Debug.WriteLine("Tab Tapped");
var tabbarVC = ViewController as UITabBarController;
var tabIndex = tabbarVC.SelectedIndex;
if (tabIndex == null || tabIndex > 3)
{
tabbarVC.MoreNavigationController.PopToRootViewController(false);
}
}
}
}