2012-05-31 95 views
1

我有一個iOS項目(不使用Storyboards)有2個UITextField和1個按鈕(登錄屏幕)。當用戶點擊按鈕時,如果用戶在數據庫中,它會啓動一個POST返回「1」的服務器。然後,轉到另一個屏幕。pushViewController導致黑屏

問題是,該屏幕顯示黑色。這是我的代碼:

在requestFinished方法:

if([responseString2 isEqualToString:(@"1")]){ 
termsViewController *termscreen=[[termsViewController alloc]init]; 
    [[self navigationController] pushViewController:termscreen animated:YES]; 
} 

在委託類,在方法initDiddidFinishLaunchingWithOptions:

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

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 
self.viewController = [[firstViewController alloc] initWithNibName:@"firstViewController" bundle:nil]; 
self.window.rootViewController = self.viewController; 
// 
UINavigationController *navcontroller= [[UINavigationController alloc]initWithRootViewController:self.viewController]; 
[[self window]setRootViewController:navcontroller]; 
[self.window makeKeyAndVisible];  
return YES; 

} 

它去到另一個屏幕,顯示導航欄...但屏幕是黑色的。我是iphone開發新手,所以可能會失去一些東西。

任何人都可以幫助我嗎?

在此先感謝。

+0

什麼IOS烏爾的工作嗎? –

+0

即時通訊使用Xcode 4.3 – Fustigador

+0

而iOS是5.0 – Fustigador

回答

1

我想你沒有指定它的筆尖文件。試試這個:

termsViewController *termscreen=[[termsViewController alloc] initWithNibName:@"termsViewController" bundle:nil]; 

我假設你的視圖控制器變量的名稱是termsViewController,你可能會改變,以適應您的需求。我希望這有幫助。快樂編碼:-)

+0

我已經這樣做了,Anshuk,它現在拋出「'NSInternalInconsistencyException',原因:'無法加載NIB捆綁」。我很滿意目標設置正確(在檢查員中)是正確的,同時將位置從「相對於組」設置爲「相對於項目」,並引發相同的異常。 – Fustigador

+0

這是以ViewController爲單位的initWithNibName方法,以防以下情況發生: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if(self){ //定製初始化 } return self; } – Fustigador

+0

爲什麼你創建initWithNibName方法?只需創建一個xib文件並將其命名爲termsViewController。然後致電上述聲明。 –

-2

可能是因爲你沒有實現(或刪除)的

- (void)loadView 
{ 
    // If you create your views manually, you MUST override this method and use it to create your views. 
    // If you use Interface Builder to create your views, then you must NOT override this method. 
} 
+0

我的loadView方法和你發佈的一樣。我試圖評論它,結果是一樣的。 – Fustigador

0

我想這事,因爲你的第二個視圖控制器不是導航控制器內。當你創建一個導航控制器時,你必須添加一個對象數組,所以它知道要推送什麼。

代碼片段:

UINavigationController *navContr = [[UINavigationController alloc]init]; 
FirstViewController *firstViewContr = [[FirstViewController alloc] init]; 
MapViewController *mapContr = [[MapViewController alloc] init]; 
NSArray *vcArray = [NSArray arrayWithObjects: mapContr, firstViewContr, nil]; 
[navContr setViewControllers:vcArray]; 
[self.window setRootViewController:navContr]; 
[self.window makeKeyAndVisible]; 
return YES; 
相關問題