Ios5 带UITabBar的UITabBar控制器功能

Ios5 带UITabBar的UITabBar控制器功能,ios5,xamarin.ios,interface-builder,uitabbar,Ios5,Xamarin.ios,Interface Builder,Uitabbar,我正在用interface builder使用故事板制作一个应用程序 我想有一个选项卡栏,其中没有选择任何项目。这可以通过设置 TabBar.SelectedItem = null; 但是如果您尝试这样做,您会得到以下错误: 'Directly modifying a tab bar managed by a tab bar controller is not allowed.' 所以我不能使用标准的UITabBarController。我创建了一个自定义的UIViewController,

我正在用interface builder使用故事板制作一个应用程序

我想有一个选项卡栏,其中没有选择任何项目。这可以通过设置

TabBar.SelectedItem = null;
但是如果您尝试这样做,您会得到以下错误:

'Directly modifying a tab bar managed by a tab bar controller is not allowed.'
所以我不能使用标准的
UITabBarController
。我创建了一个自定义的
UIViewController
,并添加了一个
uitabar
。在选项卡之间切换工作正常,没有选择也正常工作

但我不知道如何使用选项卡栏从自定义视图控制器显示其他视图控制器。请记住,我使用的是interfacebuilder,所以我不能在代码中将视图控制器创建为新对象并将其添加到视图中。(如中所述)

那么,如何在不使用UITabBarViewController的情况下显示自己的视图呢



编辑:仍然没有找到解决方案,但我做了一个黑客修复。简单地创建另一个选项卡栏并将其放置在原始选项卡栏的顶部。收听这些事件并使用
SelectedIndex
更改显示的视图。然后添加一些函数来选择/取消选择您自己选项卡栏上的项目。

事实上,即使您从IB设计其他
UIViewController
,您也可以从代码中实例化它们。您可能需要对frame和AutoResize属性进行一些调整,以使它们适合您希望它们显示在主视图中的部分,但这是可能的

因此,知道了这一点,一个简单的解决方案是在主
UIViewController
中创建一个简单的
UIView
(我们称之为“tabFrame”),它从
UITabBar
的顶部到屏幕的顶部填充屏幕;实例化与选项卡对应的
UIViewController
,并将其视图添加为
tabFrame
的子视图。现在,您只需从选项卡栏捕捉项目选择,以隐藏或显示所需的子视图

希望我足够清楚,否则不要犹豫提问

编辑:今天早上指出,在故事板上下文中,您可以有效地从代码实例化ViewController/场景,但为了不丢失设计器设置,必须而不是通过直接调用其构造函数,而是通过
故事板来完成
在脚本编辑器中将标识符设置为VCs后调用


比如看

是的,我想到了,但我们这里不是说IB。我用的是故事板。哦,是的,我想到了XIB的:P无论如何,我知道我可以从代码中实例化它们,但是它们失去了我在IBI中所做的一些设置,我从来没有遇到过这个问题(从代码中实例化时失去IB设置),甚至不知道这种可能性,所以对于错误的解决方案表示抱歉,祝你好运!也许我只是做错了,但是试着在IB中创建一个分组的UITableViewController,默认构造函数是YourClass(IntPtr handle):base(handle){}。你将如何使用该构造函数创建一个实例?我家里没有Mac,所以明天才能验证或测试,但根据我的记忆,我相信我刚刚创建了另一个构造函数,它不需要这个
IntPtr handle
东西。