2009-10-30 36 views
0

我有2個視圖與nib文件之間的切換視圖的問題! 在這裏我的代碼。 我的第一頁轉到第2頁!但在第2頁我不能回到第一頁!我的應用程序去了..這裏是我的代碼:iPhone Switch視圖_KILL!問題

從頁面1到2:

#import "HafezViewController.h" 
#import "GhazaliateHafez.h" 


-(IBAction)gh:(id)sender { 
    HafezViewController *ghPage = [[HafezViewController alloc] initWithNibName: @"GhazaliateHafez" bundle:nil]; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.3]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES]; 
    [self.view addSubview:ghPage.view]; 
    [UIView commitAnimations]; 
} 

^^^^^^^^^ 此代碼的偉大工程! 但是從第2頁背:

#import "GhazaliateHafez.h" 
#import "HafezViewController.h" 

@implementation GhazaliateHafez 


-(IBAction)ghtoIndex:(id)sender { 
    HafezViewController *back1 = [[HafezViewController alloc] initWithNibName:@"index" bundle:nil]; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; 
    [self.view addSubview:back1.view]; 
    [UIView commitAnimations]; 

} 

後我點擊後退按鈕我的應用程序去崩潰...... 什麼我的問題呢? 謝謝

+0

我強烈建議你修改你的信息來解決你的代碼的格式。閱讀當前狀態非常困難。 –

+0

修好了!!!!!!! – Momi

回答

1

您將view2添加到view1,然後將view1添加回view2。使用View2完成後,將再次顯示簡單電話self.view.removeFromSuperview和視圖1。

其實,在這又找,好像你可能想看看presentModalViewController顯示視圖2.

+0

所以我必須改變這一行[self.view addSubview:back1.view]; 對此?: [self.view.removeFromSuperview]; – Momi

0

兩個想法,可以幫助你在路上:

我想你可能想通過儀器運行此。你是否在泄漏記憶?你正在爲每次點擊分配一個視圖,然後緩存它...你釋放它們嗎?

如果有兩個獨立於此的視圖(例如數組),然後索引要激活的視圖並將其包裝到上面的動畫循環中,同時釋放並隱藏另一個視圖,會更容易嗎?不太清楚如何讓其他視圖不受命令影響,因爲發佈是垃圾控制的......但我知道有一種方法可以實現。

And this is from a post from earlier that helped me when I was asking how to remove a subview immediately:


myGroovySubview.hidden = YES;隱藏視圖。您也可以嘗試使用[myGroovySubview removeFromSuperview]將其從超級視圖中移除;

如果您將其從超級視圖中移除,則釋放調用應自動將其從內存中移除,因爲該調用後引用計數應爲零。

+0

marc:所以我必須改變這一行[self.view addSubview:back1.view];對此? :[self.view.removeFromSuperview]; ?? – Momi

+0

從視圖開始1.然後添加子視圖2.當您完成子視圖2時,將其從超級視圖中移除。你剩下的子視圖1.在你的代碼中你添加了視圖2和addSubview ...,並且你使用removeFormSuperview刪除視圖2 ... – Spanky

+0

謝謝...但是你能寫出正確的代碼嗎?是業餘的:( – Momi