在XCode 4.2空应用程序模板中使用Interface Builder将tabbarcontroller添加到AppDelegate的步骤

时间:2011-11-20 11:30:01

标签: iphone objective-c ios xcode ios5

虽然我卡住了at this question我找不到向AppDelegate添加UITabBarController的正确步骤(不是以编程方式),但是通过使用“空应用程序”模板的界面构建器,我尝试添加一个新的空xib文件,然后将uitabbarcontroller放入其中,但没有办法将它(从IB)链接到AppDelegate!即,当我将蓝线从tabbarcontroller对象(在文档大纲中)移动到文件所有者时,界面构建器仅在显示的列表中显示“委托”选项,因此那里没有IBOutlet选项。

那么,使用界面生成器方式添加tabbarcontroller并将其连接到appDelegate的确切步骤是什么(对于空应用程序模板,使用XCode 4.2和IOS 5 SDK)?

步骤1:创建新的空应用程序模板项目。

......等待下一步......

非常感谢。

3 个答案:

答案 0 :(得分:12)

步骤1:创建新的空应用程序模板项目 第2步:添加

@property (nonatomic, strong) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, strong) IBOutlet UIWindow *window;

在你的app代理中。 (别忘了综合这些) 第3步:在您的应用代理中更改此行:

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>

第4步:修改此方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window addSubview:[self.tabBarController view]];
[self.window makeKeyAndVisible];
return YES;
}  

第5步:创建一个新的空xib。将标签栏控制器拖到它上面以及一个空对象 将空对象的类设置为AppDelegate。将文件所有者设置为UIApplication。

步骤6:将“委托”属性从文件所有者拖到appdelegate类,然后将标签栏插件从appdelegate类拖到tabbarcontroller

步骤7:添加一个窗口并将“窗口”连接从appdelegate拖到窗口。

步骤8:不要忘记进入项目设置并将主基nib文件设置为您创建的新xib。

多数民众赞成。希望我没有错过任何东西。

答案 1 :(得分:0)

我不明白需要通过主窗口添加UITabBarController。使用Xcode 4.2,Apple对默认模板进行了一些更改。它不在Empty Application中提供MainWindow.xib。这就是为什么,如果你打开AppDelegate.h,你会看到:

@property (strong, nonatomic) UIWindow *window;

它没有像我们以前在Xcode版本中看到的窗口的IBOutlet。 您想要实现的是具有Core Data支持的UITabBarController。您可以以编程方式添加tabBarController,并仍然添加CoreData支持。

答案 2 :(得分:0)

这就是我必须做的事情。

从“工具”面板中的故事板的“对象”列表(“控制器和对象”)中,将通用“对象”(黄色立方体)拖动到“选项卡栏控制器场景”页面(我将对象放在“退出”对象下)。

将对象的类设置为appDelegate。现在,您应该能够将Tab Bar Controller的委托链接到appDelegate对象。如果您已创建了诸如

之类的属性,还可以将appDelegate链接到选项卡栏控制器
@property (weak, nonatomic, readwrite) IBOutlet UITabBarController *tabs