切換到的Xcode 4後,我想我應該能夠建立並運行我的應用程序完全一樣我可以在Xcode 3的Xcode 4將不顯示應用程序的主屏幕
原來我不能。
Xcode 4有一個有趣的方式永遠不會顯示應用程序的視圖控制器,這很奇怪。
我可以告訴蘋果最終會迫使我們切換,這將導致我的應用程序無法運行。
在掛起之前沒有任何錯誤地取得application:didFinishLaunchingWithOptions:
。最終應用程序在設備上崩潰 - 但在模擬器中永遠保留在Default.png中。
我以爲我可以去編輯application:didFinishLaunchingWithOptions:
方法實例化視圖控制器本身的一個實例,並將其添加到窗口 - 只是爲了揭示也沒有工作。
經過多次失敗的嘗試 - 爲主視圖控制器創建單獨的UIWindows - 我決定將其添加到導航控制器。
幸運然後打動了我 - 但只有最簡單的形式。我查看了日誌,看到applicationDidBecomeActive:
已被調用。
但是,像往常一樣,沒有這樣的運氣與任何形式的視圖顯示。
然後我決定看看是否可以在窗口中添加一個帶有藍色背景色和一些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
如果任何人能幫助我在這裏將它極大讚賞。
謝謝,但是,它仍然是行不通的。 –