Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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
Ios Xcode 4赢得';t显示应用程序&x27;s主屏幕_Ios_Xcode_Uiview_Uiviewcontroller_Rootview - Fatal编程技术网

Ios Xcode 4赢得';t显示应用程序&x27;s主屏幕

Ios Xcode 4赢得';t显示应用程序&x27;s主屏幕,ios,xcode,uiview,uiviewcontroller,rootview,Ios,Xcode,Uiview,Uiviewcontroller,Rootview,在切换到Xcode 4之后,我想我可以像在Xcode 3中一样构建和运行我的应用程序 结果我不能 Xcode 4有一种有趣的方式,它从不显示应用程序的视图控制器,这很奇怪 我可以说,苹果最终将迫使我们切换,这将导致我的应用程序无法运行 在挂起之前,它可以在没有任何错误的情况下使用选项:进入应用程序:didfishlaunching。最终应用程序会在设备上崩溃,但在模拟器中永远保持在Default.png上 我想我可以去编辑应用程序:didFinishLaunchingWithOptions:方法

在切换到Xcode 4之后,我想我可以像在Xcode 3中一样构建和运行我的应用程序

结果我不能

Xcode 4有一种有趣的方式,它从不显示应用程序的视图控制器,这很奇怪

我可以说,苹果最终将迫使我们切换,这将导致我的应用程序无法运行

在挂起之前,它可以在没有任何错误的情况下使用选项:进入
应用程序:didfishlaunching。最终应用程序会在设备上崩溃,但在模拟器中永远保持在Default.png上

我想我可以去编辑
应用程序:didFinishLaunchingWithOptions:
方法实例化视图控制器本身的一个实例并将其添加到窗口中-结果显示这也不起作用

在多次尝试失败后(为主视图控制器创建单独的UIWindows),我决定将其添加到导航控制器中

然后幸运降临在我身上——但只是以最简单的形式。我查看了日志,发现已调用了
applicationdibecomeactive:

但是,像往常一样,没有这样的运气,没有任何形式的视图被显示出来

然后,我决定看看是否可以在窗口中添加一个带有蓝色背景颜色和一些UI元素(按钮、标签等)的UIView,然后看看这是否可行

有趣的是它做到了

但是为什么不使用主视图控制器呢?在Xcode 4中,我没有一次成功地让它运行我的应用程序(即使在构建后打开它也会失败)。我尝试过将编译器更改为与Xcode 3中相同的编译器,但没有成功

我真的很困惑为什么应用程序的视图控制器不会显示

对于任何想尝试一下它为什么不起作用的人,我们将不胜感激

这是AppDelegate的代码,如果您需要视图控制器的代码,我可以将其粘贴到这里,但是它有2000多行

无论如何,下面是.m文件:

#import "DocumentationAppDelegate.h"
#import "DocumentationViewController.h"

@implementation DocumentationAppDelegate

@synthesize window;
@synthesize viewController;
@synthesize navigationController;

- (void)applicationWillEnterForeground:(UIApplication *)application {
    NSLog(@"In method %@, which is in class %@.", NSStringFromSelector(_cmd), NSStringFromClass([self class]));
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"In method %@, which is in class %@.", NSStringFromSelector(_cmd), NSStringFromClass([self class]));

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSLog(@"In method %@, which is in class %@.", NSStringFromSelector(_cmd), NSStringFromClass([self class]));

    DocumentationViewController *vc = [[DocumentationViewController alloc] init];

    UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:vc];
    controller.navigationBarHidden = YES;

    UIWindow *win = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [win addSubview:controller.view];
    [win makeKeyAndVisible];

    return YES;
}

- (void)applicationWillTerminate:(UIApplication *)application {

}


- (void)dealloc {
    [window release];
    [super dealloc];
}

@end
还有.h

#import <UIKit/UIKit.h>

@class DocumentationViewController;

@interface DocumentationAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    DocumentationViewController *viewController;
    UINavigationController *navigationController;
}

@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet DocumentationViewController *viewController;

@end
#导入
@类文档视图控制器;
@接口文档AppDelegate:NSObject{
UIWindow*窗口;
文档视图控制器*视图控制器;
UINavigationController*导航控制器;
}
@属性(非原子,保留)IBuinavigationController*导航控制器;
@属性(非原子,保留)IBUIWindow*window;
@属性(非原子,保留)IBOutlet DocumentationViewController*viewController;
@结束

如果有人能在这里帮助我,我将不胜感激。

您的应用程序代理已经拥有属性窗口、viewController和navigationController。因此,您可以使用如下方法创建应用程序:didFinishLaunchingWithOptions:method

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    viewController = [[DocumentationViewController alloc] init];
    navigationController = [[UINavigationController alloc] initWithRootViewController:vc];
    navigationController.navigationBarHidden = YES;

    [self.window addSubview:navigationController.view];
    [self.window makeKeyAndVisible];

    return YES;
}