Iphone 在UITabBarController中,是否可以将一个选项卡置于固定位置,并对其他选项卡进行重新排序?
我希望UITabBarController中的一个选项卡具有固定位置,用户可以根据自己的喜好重新组织其他选项卡。我有UITableViewController>UINavigationController>UITableViewController设置 这可能吗 更新: 下面的代码,在ApplicationIDFinishLaunching中,是我正在使用的代码,它不起作用。我正在尝试获取对SavedTableViewController的引用,我认为这就是问题所在。有什么想法吗Iphone 在UITabBarController中,是否可以将一个选项卡置于固定位置,并对其他选项卡进行重新排序?,iphone,uitabbarcontroller,Iphone,Uitabbarcontroller,我希望UITabBarController中的一个选项卡具有固定位置,用户可以根据自己的喜好重新组织其他选项卡。我有UITableViewController>UINavigationController>UITableViewController设置 这可能吗 更新: 下面的代码,在ApplicationIDFinishLaunching中,是我正在使用的代码,它不起作用。我正在尝试获取对SavedTableViewController的引用,我认为这就是问题所在。有什么想法吗 NSMutab
NSMutableArray *customizableVCs = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
for (id controller in tabBarController.customizableViewControllers){
if ([controller isKindOfClass:[SavedTableViewController class]]){
NSLog(@"Removing Object");
[customizableVCs removeObject:controller];
}
}
tabBarController.customizableViewControllers = customizableVCs;
更新2:
这是对我有用的代码。我不得不在下面添加tabBarController到窗口的片段
[window addSubview:tabBarController.view];
[self setTabOrderIfSaved];
NSMutableArray *customizableViewControllers = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
[customizableViewControllers removeObject:savedNavigationController];
tabBarController.customizableViewControllers = customizableViewControllers;
从选项卡栏控制器的中删除与该选项卡对应的视图控制器。假设您希望fixedViewController保持固定:
NSMutableArray *customizableViewControllers = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
[customizableViewControllers removeObject:fixedViewController];
tabBarController.customizableViewControllers = customizableViewControllers;
由于
customizeleviewcontrollers
属性更改时会重新初始化viewControllers
,因此您应该在设置选项卡栏控制器的其余状态后执行此操作。从选项卡栏控制器中删除与该选项卡对应的视图控制器。假设您希望fixedViewController保持固定:
NSMutableArray *customizableViewControllers = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
[customizableViewControllers removeObject:fixedViewController];
tabBarController.customizableViewControllers = customizableViewControllers;
由于
customizeleviewcontrollers
在更改viewControllers
属性时会重新初始化,因此您应该在设置选项卡栏控制器的其余状态后执行此操作。谢谢,我将尝试此操作。可能没有,但是如果选项卡被移动,是否有办法使其保持在选项卡栏中?我不介意viewController在工具栏中移动,我只是不希望它移动到“更多”部分。我的设置是tabBarController>navController>viewController,这有关系吗?@W Dyson不,设置几乎没有关系。但是,您应该注意,viewController
实际上不在选项卡栏的控制器数组中;您应该从其CustomizedLeviewController
中删除的是navController
,即viewController
的父级,因为这是您实际添加到它的父级。谢谢,我要尝试一下。可能没有,但是如果选项卡被移动,是否有办法使其保持在选项卡栏中?我不介意viewController在工具栏中移动,我只是不希望它移动到“更多”部分。我的设置是tabBarController>navController>viewController,这有关系吗?@W Dyson不,设置几乎没有关系。但是,您应该注意,viewController
实际上不在选项卡栏的控制器数组中;你应该从它的自定义控件
中删除的是导航控制器
,即视图控制器
,因为它是你实际添加到它的父对象。当你说它不工作时,你到底指的是什么?CustomizeLeviewController的初始状态是否符合您的期望?我认为这一行不起作用。。。如果([controller isKindOfClass:[SavedTableViewController类]]){当你说它不起作用时,你到底指的是什么?CustomizedLeviewController的初始状态是否符合你的预期?我认为这行代码不起作用……如果([controller isKindOfClass:[SavedTableViewController类]])){