2011-08-06 4 views
1

나는이 시나리오를 가지고, 나는 4보기가 있습니다. v1, v2, v3, v4.보기 및 단추 iPhone 응용 프로그램의 문제

나는 뷰 v1에 있는데, 어떤 셀이라도 누르면 다른 뷰 v2로 이동합니다. 벌금.

그럼 v2에서는 텍스트 필드와 버튼 B2가 있습니다. 단추 B2 (나는 textField 데이터와 pushViewController 함수를 저장하기 위해 메서드를 설정했다)를 누르면 v3으로 연결된다.

나는 B3과 마찬가지로 버튼을 가지고 있습니다. 이 버튼은 v3에 데이터를 저장하고보기 4, 즉 v4로 이동합니다.

v4에서 v2 및 v3의 모든 텍스트 필드가 표시됩니다. 문제 없습니다. 하지만 내비게이션 뒤 바 버튼을 누르면 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

후 UR V3하는 .m 파일 코드 내게 –

+0

신호 - buttonPress (IBAction를)를 (ID) 발신자 { \t NSUserDefaults * 기본값 = NSUserDefaults standardUserDefaults]; \t [기본값 setObject : field1.text forKey : @ "field1Key"]; \t [기본값 setObject : field2.text forKey : @ "field2Key"]; \t [기본값 동기화]; 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 [공 릴리스]; – Mann

+0

@vijay 이것은 내 수업 3보기 3을 포함합니다 – Mann

답변

1

if (co ==nil) 블록 안에 ViewController를 밀고 있습니다. 첫 번째 네비게이션 중 뷰 컨트롤러는 실제로 nil이므로 실제로 작동합니다. 다시 돌아가서 버튼을 다시 누르면 작동하지 않습니다.

보기 컨트롤러를 밀어 넣어야합니다 (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]; 

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]; 
    } 

} 

//이 광고 CO = 참고 [CLASS4의 ALLOC]을 initWithNibName @ "CLASS4"번들 : 닐];

+0

친구가 아닙니다. 오류를 보여줍니다. 응용 프로그램이 충돌했습니다 – Mann

+0

//이 줄을 메모하십시오 co = [[class4 alloc] initWithNibName : @ "class4"번들 : 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. } 
관련 문제