2

我有2個視圖控制器,假設A和B在A,我打電話B到過渡風格UIModalTransitionStylePartialCurlUIModalTransitionStylePartialCurl不會回到以前的狀態。 (不解僱)

[b setModalTransitionStyle:UIModalTransitionStylePartialCurl]; 
[self presentModalViewController:b animated:YES]; 

它工作正常顯示。但是,當我按iOS 4.3編譯的程序中的捲曲區域時。它並沒有解僱。它不回到視圖控制器...

最有趣的是,這個捲曲是活動的,並在使用iOS 5.0編譯的應用程序中給出響應。

我該如何解決這個問題?
此外,爲什麼它不關閉B視圖控制器並返回A?

+0

顯示您的代碼。 這將有助於我們有正確的理解並給出所需的答案。 – adedoy 2011-12-22 16:19:25

+0

實際上根本沒有代碼。我所做的所有事情都是來自視圖控制器的上述代碼。我可以向你展示B視圖控制器的XIB。我可以說的是,它不知何故是因爲curl下有一個子視圖,所以它不會被觸發。但我不明白主要原因。 http://92.44.22.81/~waqas/ss.png – kkocabiyik 2011-12-22 16:45:57

回答

1

這裏是鏈接到蘋果網站的Modal View Controllers

基本上,你需要設置代理等,並調用dismissModalViewControllerAnimated:從您的視圖 - 控制A.方法讓我知道如果你需要進一步的幫助。每MiiChiel

編輯:

在BController.h文件,補充一點:

@protocol BControllerDelegate <NSObject> 
-(void)dismissMe; 
@end 

@interface BController : UIViewController 
//... 
@property (assign) id <BControllerDelegate> delegate; 
//... 
@end 

在BController.m文件,補充一點:

@implementation BController 
@synthesize delegate; 
//... 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.delegate dismissMe]; 
} 

在AController.h文件,加入:

#import "BController.h" 

@interface AController : UIViewController <BControllerDelegate> 

在AController.m文件中,添加以下內容:

//add this line before presenting the modal view controller B 
bController.delegate = self; // assuming bController is the name of the modal 

-(void)dismissMe 
{ 
    //call back from modal view to dismiss it 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

爲什麼我們需要它?我們正在使用默認轉換。實際上,當我的視圖爲空時,這意味着除視圖外沒有其他控件,它通過單擊部分頁面捲曲返回到視圖控制器。正如你所說,我需要創建委託。但是,如何訪問部分頁面捲曲以便我們瞭解點擊行爲? – kkocabiyik 2011-12-22 18:23:46

+0

部分頁面捲曲是您的父視圖。捲曲下的頁面是模態視圖。所以你需要在模態視圖上設置一些類型的控制,並設置委託,這樣可以進行回調。我認爲你也可以直接從模態觀點中解散。但我一直使用委託方法。 – user523234 2011-12-22 21:02:18

+0

user523234,你能再解釋一下嗎?我試圖找到這個工作,點擊捲曲部分來調用關閉模式視圖,所以我不必添加額外的「後退」按鈕。但是我找不到任何代碼來從頁面捲曲中獲得「觸地」事件。感謝您的答覆! – MiiChiel 2012-03-23 09:13:17