加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 使用Xcode 4.2的Interface Builder中的UIApplicationD

发布时间:2020-12-14 17:45:26 所属栏目:百科 来源:网络整理
导读:我的应用程序是基于视图的应用程序.我需要创建一个UINavigationController作为我的rootViewController. 在以前版本的Xcode中,有一个名为mainWindow的xib文件,我们可以在其中: 将我们的UIApplicationDelegate实现连接到UIApplication的代理插座 将UIWindow连
我的应用程序是基于视图的应用程序.我需要创建一个UINavigationController作为我的rootViewController.

在以前版本的Xcode中,有一个名为mainWindow的xib文件,我们可以在其中:

>将我们的UIApplicationDelegate实现连接到UIApplication的代理插座
>将UIWindow连接到UIApplicationDelegate
>将UIViewController连接到UIWindow的rootViewController属性.

但是现在(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!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读