0
-(void)reviewClicked:(id)sender 
{ 
    ReviewViewController *newView = [[ReviewViewController alloc] init]; 
    newView.delegate = self; 
    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:newView]; 
    [self presentModalViewController:navCon animated:YES]; 
} 

我有一個splitViewController安裝程序,這可能是導致一些問題。在詳細視圖控制器中,我有一個按鈕,當點擊時調用上面的代碼。presentModalViewController幻燈片新視圖太高了,並在屏幕上方

目標是從屏幕底部向上滑動視圖,以便用戶可以查看其選擇,然後單擊按鈕返回到原始詳細視圖。此代碼正在工作,您可以在模態視圖和原始詳細視圖之間來回點擊。

問題是,在它向上滑動屏幕之後,它會繼續滑過它應該停止的位置,最後會停止一個好的10-15像素。基本上,這種模式視圖在很遠的範圍內滑動,以至於很大一部分視圖位於屏幕的頂部。同時,相同數量的空間是屏幕底部的「空白空間」,只是進一步表明該視圖只是移動得太遠了。

複雜的事情,它在橫向模式下很好地滑動。

所以問題是,有沒有人知道爲什麼這個錯誤發生,使模式視圖滑動太遠,超過屏幕的頂部?

- = - = - = - = - = - = -

編輯: 對不起,我的意思在於斑鍵入navCon。我把它固定在上面。

- = - = - = - = - = - = -

解決方案:

-(void)reviewClicked:(id)sender 
{ 
    ReviewViewController *newView = [[ReviewViewController alloc] init]; 
    newView.delegate = self; 
    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:newView]; 
    navCon.view.frame = CGRectMake(0, 0, 768, 1080); 
    [self presentModalViewController:navCon animated:YES]; 
} 

一些試驗和錯誤後,我意識到,我從來沒有真正設置視圖的框架!一個簡單的解決方案......我一直在通過包含.xib文件的示例運行,並且由於這些文件自動創建了框架,所以我完全忽略了它!

請記住,任何人在將來看這個。該框架僅適用於肖像模式。如果你想風景模式,只需修改相應的框架:

navCon.view.frame = CGRectMake(0, 0, 1080, 768); 
+0

我還沒有試過,但不'[present presentModalViewController:navCon animated:YES];'做任何有用的事情? (通常你想呈現'擁有'控制器。) – 2012-04-13 16:04:13

+0

請參考以下鏈接, http://stackoverflow.com/questions/11230159/presentmodalviewcontroller-with-some-frame/11230616#11230616 – ABC1 2012-06-27 16:32:18

回答

0

雖然我已經找到一個快速解決問題,在問題描述。事實是,仍然存在很多問題。經進一步檢查,我呼籲的appDelegate調用這些方法:

[self.splitViewController presentModalViewController:navCon animated:YES]; 
[self.splitViewController dismissModalViewControllerAnimated:YES]; 

基本上,我有根視圖類調用它解決了所有的問題,我的模式的看法。顯然,在splitview的細節視圖中調用模態視圖與從根視圖調用模態視圖(這恰好是splitViewController)不同。我希望這可以幫助任何人在未來。乾杯。

- = - = - = - = - = - = - = -

更多參考,看到這個帖子,我偶然發現:

UISplitViewController - Pushing Modal View