Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 选项卡栏似乎已锁定(默认设置)_Iphone_Objective C_Ios_Xcode - Fatal编程技术网

Iphone 选项卡栏似乎已锁定(默认设置)

Iphone 选项卡栏似乎已锁定(默认设置),iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我使用XCode 4.2中的interface builder创建了一个tabbarcontroller(默认有两个视图控制器) 但是,当我运行应用程序时,选项卡栏似乎被锁定,我无法选择其他选项卡。为什么呢 PS:我没有更改XCode中选项卡栏或选项卡栏控制器的任何属性。您是如何创建选项卡栏的?您是否有一个初始视图,然后转到“编辑”菜单->嵌入->选项卡栏控制器,还是从零开始并拖动到选项卡栏控制器 不管是哪种方式,我只是创建了一个只有一个视图的项目,并尝试了两种方式——但选项卡仍然有效。(如果通

我使用XCode 4.2中的interface builder创建了一个
tabbarcontroller
(默认有两个视图控制器)

但是,当我运行应用程序时,选项卡栏似乎被锁定,我无法选择其他选项卡。为什么呢


PS:我没有更改XCode中选项卡栏或
选项卡栏控制器的任何属性。

您是如何创建选项卡栏的?您是否有一个初始视图,然后转到“编辑”菜单->嵌入->选项卡栏控制器,还是从零开始并拖动到选项卡栏控制器

不管是哪种方式,我只是创建了一个只有一个视图的项目,并尝试了两种方式——但选项卡仍然有效。(如果通过从“实用程序”窗格拖动选项卡栏控制器来执行此操作,则如果用项目替换创建的原始视图,还必须选择“是初始视图控制器”

在您的评论之后编辑:


您实际上不需要在AppDelegate中合成tab bar控制器-故事板将处理此问题,您可以从代码中引用它,而无需生成合成器。只需先通过拖动tab bar控制器在故事板中设计布局(默认情况下,这将自动创建两个视图控制器)。然后选择tabbar控制器,在“实用程序”面板下,您将看到“是初始视图控制器”复选框。确保选中该复选框。然后运行您的项目。

抱歉-假设您使用的是XCode 4.2,您使用的是故事板。也许您可以尝试在代码中完全实例化tabbar控制器,而不是使用脚本一点也不。我通常就是这样做的

// Create the main tabbar controller
tabbarController = [[UITabBarController alloc] init];

// Create the first view controller
MyFirstViewController *v1 = [[MyFirstViewController alloc] initWithNibName:@"MyfirstViewController" bundle:nil];
[v1 setTitle:@"Tab1"];

// Create second view controller
MySecondViewController *v2 = [[MySecondViewController alloc] initWithNibName:@"MySecondViewController" bundle:nil];
[v2 setTitle:@"Tab2"];

// Make an array of controllers for the tabbar
NSArray *tabbarControllerArray = [NSArray arrayWithObjects:v1, v2, nil];

// Set the view controllers used by the tabbar controller
[tabbarController setViewControllers:tabbarControllerArray];

// Release views (retained elsewhere)
[v1 release];
[v2 release];

// Add the controller to the subview
[window addSubview:[tabbarController view]];

// Make key and visible
[self.window makeKeyAndVisible];

试一试,看看你进展如何。

1)创建了一个空的应用程序模板项目。2) 在AppDelegate.h文件中添加了IBOutlet并将其合成。3) 让AppDelegate接口符合UITabBarControllerDelegate协议。4) 创建一个新的空xib,将一个选项卡栏控制器(从对象库)以及一个空对象拖到其中,并将空对象的类设置为AppDelgate,将文件的所有者类设置为UIApplication。5) 将“delegate”属性从文件的所有者拖到appdelegate类,将选项卡栏出口从appdelegate类拖到tabbarcontroller。5)添加窗口对象(从对象库)并将“window”连接从appdelegate拖到窗口,将rootViewController属性从窗口拖到tabbarcontroller。6) 将项目设置中的主界面文件设置为我添加的文件xib。最后,当我运行应用程序时,选项卡栏显示良好,但它被锁定,我无法选择选项卡。我找不到属于ibbarcontroller的“is initial view controller”,我们不打算在我们的项目中使用故事板,我们陷入了这个奇怪的问题,所有的设置和连接都是100%正确的!但是标签被锁定了,这让我发疯。感谢您对故事板的澄清。最后,它对我起了作用,在我根据本教程重复上述步骤后,XCode中出现了一些问题:现在一切都好了