C# 当存在';s超过5个选项卡栏项目&;用户可以重新排序吗?
我有一个Xamarin.iOS应用程序,其中包含5个以上的选项卡栏项目。在此应用程序的主屏幕中,选项卡栏被隐藏。 您仍然可以通过视图中的UI按钮而不是选项卡栏来导航应用程序 当选项卡栏项目少于5个时,我可以通过触摸按钮选择索引轻松导航:C# 当存在';s超过5个选项卡栏项目&;用户可以重新排序吗?,c#,xamarin,xamarin.ios,C#,Xamarin,Xamarin.ios,我有一个Xamarin.iOS应用程序,其中包含5个以上的选项卡栏项目。在此应用程序的主屏幕中,选项卡栏被隐藏。 您仍然可以通过视图中的UI按钮而不是选项卡栏来导航应用程序 当选项卡栏项目少于5个时,我可以通过触摸按钮选择索引轻松导航: servicesButton.TouchUpInside += (sender, e) => { TabBarController.SelectedIndex = 1; }; 现在,由于我有5个
servicesButton.TouchUpInside += (sender, e) =>
{
TabBarController.SelectedIndex = 1;
};
现在,由于我有5个以上的选项卡栏项,用户可以对它们重新排序,所以我不能使用硬编码索引
我目前的工作解决方案是:
servicesButton.TouchUpInside += (sender, e) =>
{
for (int i = 0; i < TabBarController.ViewControllers.Length; i++)
{
if (TabBarController.ViewControllers[i].Title.Equals("Services"))
{
TabBarController.SelectedIndex = i;
}
}
};
servicesButton.TouchUpInside+=(发送方,e)=>
{
对于(int i=0;i
这似乎是可行的,但有人知道更好的方法来完成这项任务吗 你可以:
- 在视图上设置
属性,例如,服务视图标记设置为5标记
- 使用LINQ选择视图控制器
- 然后在
选项卡上设置
SelectedViewController
servicesButton.TouchUpInside+=(发送方,e)=>
{
var servicesViewController=TabBarController.ViewControllers.FirstOrDefault(x=>x.View.Tag==5);
if(servicesViewController!=null)
{
TabBarController.SelectedViewController=servicesViewController;
}
};
您可以在序列图像板/xib中设置标记,也可以通过编程方式设置标记。是否可以使用具有唯一ID的对象来设置所选索引?