Mc.*_*ver 4 iphone sdk xcode ipad ios
我的应用程序是基于视图的应用程序.我需要创建一个UINavigationController作为我的rootViewController.
在以前版本的Xcode中,有一个命名的xib文件mainWindow,我们可以在其中:
UIApplicationDelegate实现对UIApplication的delegate出口UIWindow到UIApplicationDelegateUIViewController到UIWindow的rootViewController财产.但是现在(Xcode 4.2)不会创建这个xib文件!
那么如何创建自定义UINavigationController并将其连接到UIApplicationDelegateInterfaceBuilder中的实现?
这是我的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]];
}
Run Code Online (Sandbox Code Playgroud)
首先,是的,即使在最新版本的Xcode中,你仍然可以使用IB,所以我不确定你从哪里得到它.
如果您想知道如何在没有IB的情况下指定应用程序委托,那很简单:
在您的main方法中,只需使用您的应用程序委托的类名作为第4个参数UIApplicationMain:
int main(int argc, char *argv[])
{
@autoreleasepool
{
int retVal = UIApplicationMain(argc, argv, nil, @"APPLICATION_DELEGATE_CLASS_NAME");
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,当您从模板创建基于视图的应用程序时,Xcode 4.2默认为您执行此操作(尽管它不使用静态字符串...这可能比我的建议诚实,因为如果您将重构,它会被重构使用内置的重构等):
NSStringFromClass([AppDelegate class])
要回答您的后续问题: ok , then what should I do ? to connect the UINC outlet in interface ?
不要打扰.
还是不相信我?好......这是一个教程......这是FIFTEEN的步骤!......绝对毫无意义.
首先,创建应用程序:

打开main.m并用以下内容替换第四个参数nil:

创建一个新的xib,或者劫持现有的xib(我将在这里做),然后创建File的Owner类UIApplication.

接下来,Object从工具箱中添加一个并将类更改为您的UIApplicationDelegate子类:

现在,切换回文件所有者并将delegate插座连接到UIApplicationDelegate您添加的插座.view如果你正在做我做的事情并且劫持现有的xib,请删除引用.

现在UIWindow从工具箱中添加一个.

现在添加一个'UIViewController from the toolbox. This is your customUIViewController . If you want aUINavigationController orUITableViewController`只需添加它.

如果使用自定义UIViewController类,请在此处指定类:

将您UIWindow的rootViewController插座连接到您的UIViewController:

破解你的UIApplicationDelegate界面,制作或修改window属性使其成为一个IBOutlet.

切换到实现并删除任何设置窗口和根视图控制器的"毫无价值"代码.(我在这里讽刺......这个简洁的代码完成了我们在这里所做的一切......只是通过编程而不是通过IB.)

切换回你的xib并连接你UIApplicationDelegate的window插座.

现在,在目标的部署信息中,将xib设置为"主界面":

完成.... pshew!
| 归档时间: |
|
| 查看次数: |
3002 次 |
| 最近记录: |