Ios Xcode 4赢得';t显示应用程序&x27;s主屏幕
在切换到Xcode 4之后,我想我可以像在Xcode 3中一样构建和运行我的应用程序 结果我不能 Xcode 4有一种有趣的方式,它从不显示应用程序的视图控制器,这很奇怪 我可以说,苹果最终将迫使我们切换,这将导致我的应用程序无法运行 在挂起之前,它可以在没有任何错误的情况下使用选项:进入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:方法
应用程序: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;
}