2011-08-06 40 views
1

我有這種情況下,我有4個意見。 V1,V2,V3,V4。問題與意見和按鈕iPhone應用程序

我在視圖v1中,這是表格視圖,當我按下任何單元格時,它將我帶到另一個視圖v2。精細。

然後在v2我有一些textFields和按鈕B2。當我按下按鈕B2(我已經在其方法中設置保存textField數據和pushViewController函數),它需要我到v3。

我在v3以及B3中有一個按鈕。該按鈕將數據保存在v3上並帶我查看4即v4。

在v4中顯示了v2和v3的所有文本字段。 我沒有問題。但是,當我按導航返回barbutton它需要我從v4 v3。但現在當我改變textField值並再次按下v3上的按鈕時,它不做任何事情。就像再次按下導航欄按鈕即返回按鈕它需要我v2並且按鈕B2不做任何事情。

任何人都可以幫助我解決這個問題。

-(IBAction)buttonPress:(id)sender{ 
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 
[defaults setObject:field1.text forKey:@"field1Key"]; 
[defaults setObject:field2.text forKey:@"field2Key" ]; 
[defaults synchronize]; 
if (co==nil) { 
    co=[[class4 alloc]initWithNibName:nil bundle:nil]; 
co.name=field1.text; co.phone=field2.text; 
[self.navigationController pushViewController:co animated:YES ]; 
[co release]; 
} – 

}  
+0

交烏爾V3 .m文件代碼和信號ME –

+0

- (IBAction爲)buttonPress:(ID)發送方{ \t * NSUserDefaults的默認值= [NSUserDefaults的standardUserDefaults]; \t [defaults setObject:field1.text forKey:@「field1Key」]; \t [defaults setObject:field2.text forKey:@「field2Key」]; \t [defaults synchronize]; if(co == nil)co = [[class4 alloc] initWithNibName:nil bundle:nil]; co.name = field1.text; co.phone = field2.text; [self.navigationController pushViewController:co animated:YES]; \t [co release]; } – Mann

+0

@vijay這是我的班級3包含視圖3 – Mann

回答

1

您正在if (co ==nil)塊中推送ViewControllers。在第一次導航期間,視圖控制器實際上是零,所以它的工作。如果你回頭再次按下按鈕,它將無法工作 - 這很有道理!

您應該推視圖控制器是否它是nil或不。你可以這樣做。

if (co==nil) { 
co=[[class4 alloc]initWithNibName:nil bundle:nil]; 

} 

co.name=field1.text; co.phone=field2.text; 
[self.navigationController pushViewController:co animated:YES ]; 
[co release]; 

或使co=nil檢查之前。

co = nil; 
if (co==nil) { 
co=[[class4 alloc]initWithNibName:nil bundle:nil]; 
co.name=field1.text; co.phone=field2.text; 
[self.navigationController pushViewController:co animated:YES ]; 
[co release]; 
} – 
1
//do like this to all viewcontrollers action 

-(IBAction)buttonPress:(id)sender{ 
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 

    [defaults setObject:field1.text forKey:@"field1Key"]; 

    [defaults setObject:field2.text forKey:@"field2Key" ]; 

    [defaults synchronize]; 

    if (co==nil) { 

     co=[[class4 alloc]initWithNibName:@"class4" bundle:nil]; 
     co.name=field1.text; 

     co.phone=field2.text; 

       [self.navigationController pushViewController:co animated:YES ];//updated 
     [co release];   
    } 


    else { 

     [self.navigationController pushViewController:co animated:YES ]; 

     [co release]; 
    } 

} 

//注意,此線共= [[CLASS4的alloc] initWithNibName:@ 「CLASS4」 束:無];

+0

沒有隊友,我做了同樣的事情。它顯示錯誤。應用程序崩潰 – Mann

+0

//注意此行co = [[class4 alloc] initWithNibName:@「class4」bundle:nil]; –

+0

我已經注意到這一行。同樣的錯誤。應用程序崩潰 – Mann

0

我找到了我的問題的答案。

-(IBAction)buttonPress:(id)sender{ 
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; [defaults 
setObject:field1.text forKey:@"field1Key"]; [defaults setObject:field2.text 
forKey:@"field2Key" ]; [defaults synchronize]; if (co==nil) { co=[[class4 
alloc]initWithNibName:nil bundle:nil]; co.name=field1.text; co.phone=field2.text; 
[self.navigationController pushViewController:co animated:YES ]; 
[self.navigationController pushViewController:co animated:YES ];[co release]; } co=nil; 
//This point to be noted. }