iphone – 使用Xcode 4.2的Interface Builder中的UIApplicationD
我的应用程序是基于视图的应用程序.我需要创建一个UINavigationController作为我的rootViewController.
在以前版本的Xcode中,有一个名为mainWindow的xib文件,我们可以在其中: >将我们的UIApplicationDelegate实现连接到UIApplication的代理插座 但是现在(Xcode 4.2)不会创建这个xib文件! 那么如何创建自定义UINavigationController并将其连接到InterfaceBuilder中的UIApplicationDelegate实现? 这是我在UIApplicationDelegate实现中的代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { SDWebImageRootViewController *root = [[SDWebImageRootViewController alloc] initWithNibName:nil bundle:nil]; _navigationController = [[[UINavigationController alloc] initWithRootViewController:root] autorelease]; self.window.rootViewController = _navigationController; [[_navigationController navigationBar] setBarStyle:UIBarStyleBlack]; [[_navigationController navigationBar] setTranslucent:YES]; [_window addSubview:[_navigationController view]]; } 解决方法
首先,是的,即使在最新版本的Xcode中,你仍然可以使用IB,所以我不确定你从哪里得到它.
如果您想知道如何在没有IB的情况下指定应用程序委托,那很简单: 在main方法中,只需使用应用程序委托的类名作为UIApplicationMain的第4个参数: int main(int argc,char *argv[]) { @autoreleasepool { int retVal = UIApplicationMain(argc,argv,nil,@"APPLICATION_DELEGATE_CLASS_NAME"); return retVal; } } 实际上,当您从模板创建基于视图的应用程序时,Xcode 4.2默认为您执行此操作(尽管它不使用静态字符串…这可能比我的建议诚实,因为如果您将重构,它会被重构使用内置的重构等): NSStringFromClass([AppDelegate class]) 回答你的后续问题:好的,那我该怎么办?在接口中连接UINC插座? 不要打扰. 还是不相信我?好……这是一个教程……这是FIFTEEN的步骤! ……绝对毫无意义. 首先,创建应用程序: 打开main.m并用nil替换第四个参数: 创建一个新的xib,或者劫持现有的xib(我将在这里做),然后创建File的Owner类UIApplication. 接下来,从工具箱中添加一个Object,并将该类更改为您的UIApplicationDelegate子类: 现在,切换回文件所有者并将代理插座连接到您添加的UIApplicationDelegate.如果您正在执行我所做的操作并劫持现有的xib,请删除视图引用. 现在从工具箱中添加UIWindow. 现在从工具箱中添加一个’UIViewController.这是你的customUIViewController.如果你想要aUINavigationControllerorUITableViewController`只需添加它. 如果使用自定义UIViewController类,请在此处指定类: 将UIWindow的rootViewController插座连接到UIViewController: 破解你的UIApplicationDelegate接口,制作或修改window属性,使其成为IBOutlet. 切换到实现并删除任何设置窗口和根视图控制器的“毫无价值”代码. (我在这里讽刺……这个简洁的代码完成了我们在这里所做的一切……只是通过编程而不是通过IB.) 切换回你的xib并连接你的UIApplicationDelegate的窗口. 现在,在目标的部署信息中,将xib设置为“主界面”: 完成…. pshew! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |