2012-01-03 1 views
0

보기 컨트롤러 페이지에서보기 컨트롤러 1에서 선택기보기가 있습니다. 이제 선택한 문자열 값에 액세스해야합니다. 그 다른보기 컨트롤러에서 다른보기 컨트롤러에서 볼보기 컨트롤러 2를 말합니다.다른보기에있는 선택기보기의 선택된 값 가져 오기 및 다른보기에서 문자열을 사용하십시오.

이것은 4 개의 그룹에 해당하는 저장된 데이터를 표시하는 테이블보기를 가지고 있습니다. 즉, 내 응용 프로그램은 사용자가 알림을 저장하는 표시 응용 프로그램입니다 친구, 가족, 사무실 등 각 그룹의 사용자가 미리 알림을 저장합니다 ... 그래서 이전에 나쁜 프로그래밍 컨텍스트에서 검색했습니다. 즉

나는 4 개 그룹에 해당하는 알림을 표시하기위한 4 뷰 컨트롤러를했다 컨텍스트를 이동하기 위해 쿼리 그룹 가족, 사무실 및 acquaintances.Hence에 대한 현명한처럼

NSString *getQuery = [NSString stringWithFormat:@"SELECT * FROM reminders WHERE Grp = 'Friends' GROUP BY Name,Event,Date"]; 

를 사용하여 친구에게 해당 알림을 표시 friendsViewController 말 즉,

NSString *getQuery = [NSString stringWithFormat:@"SELECT * FROM reminders WHERE Grp = '%@' GROUP BY Name,Event,Date",**selected string value from the picker in previous view**]; 

내가 할 노력하고 있어요 변화를 확인하십시오, 예 : 좋은 프로그래밍 습관에 나쁜 프로그래밍, 나는 쿼리를 사용하는 아이디어를 가지고있다 Grp = '% @'- 문자열은 이전 뷰에있는 선택기보기의 행 구성 요소에서 선택된 값입니다. 내가 액세스를 얻기를위한 2 가지 방법의 알고

,

viewController1 *vC1 and I tried to access the groupPicker like [vC1.groupPicker selectedRowInComponent:row],

하지만 우리가 기대할 수있는 등

1.subclassing the view controller i.e. 

@interface viewController2:viewController1,but I already have subclassed i.e.: 

@interface viewController2:addReminderController ,so I cant subclass twice,I am not aware too! 

2. Creating an instance object of the viewController1 i.e. 
이 선언되지 않은이,

내가 액세스 시도 행, 즉 오류가 발생합니다 배열을 [self.groupArray count]와 같이 groupPicker의 구성 요소에있는 행 수만큼 할당 했으므로 viewController2에서도 전술 작업을 시도했습니다.

[vC1.groupArray objectAtIndex:row],as expected the same error: **row undeclared** 

그래서 이전의보기에있는 선택기보기에서 선택한 행 (문자열)에 액세스 할 수 있습니다. 그래서 나에게 더 좋은 미래의 좋은 기호 인 좋은 프로그래밍 습관을 보여줄 수 있습니다. :)

당신은 세계적으로 Secondview에있는 NSString를 선언 할 수있는 몇 가지 유용한 제안을 모두 사전에

감사합니다 :)

+0

다음 값을보기 위해 선택 값 fron Pickerview와 해당 문자열을 찾으십니까? –

+0

@ KAREEMMAHAMMED 그래, 모든 제안 please.Thanks 관심 : –

+0

@ EshwarChaitanya : 왜 당신은 응용 프로그램에 대한 appDelegate를 사용하지 않니? – iCoder86

답변

1

도움이되기를 바랍니다 1 단계 : appDelegate에서 NSString 변수를 가져옵니다.

2 단계 : 두보기 모두에서 appDelegate의 인스턴스를 만들려면 값을 설정하고 다음과 같이 값을 가져오고 싶습니다.

yourApplicationDelegate *appDelegate; 

3 단계 : appDelgate 초기화 구현 파일에서 당신은 당신이 응용 프로그램의 AppDelegate에 선언 모두보기 컨트롤러에서 문자열 변수를 사용할 수 있습니다이 문 뒤에

appDelegate = [[UIApplication sharedApplication] delegate]; 

을 다음과 같은.

그게 전부입니다. 이제 첫 번째보기에서 값을 할당하고 두 번째보기에서 값에 액세스 할 수 있습니다.

+0

오, 답장을 보내 주셔서 감사합니다. –

+0

고맙습니다. –

1

좀 도와 버튼을하는 것이 좋습니다 그 행동에 당신은이

를 작성하십시오

이 캐릭터 라인이 귀하의 요구 사항에 따라 귀하의 SecondView에 사용됩니다 Pickerview 위임 방법에 firest보기 세계적으로 *

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    selectedString= [arrayNo objectAtIndex:row]; 

//here array is the array used for pickerview 
} 

-(IBAction)btnAction:(id)sender 
{ 
SecondView *sec=[[SecondView alloc]initWithNibname:@"SecondView" bundle:nil]; 
sec.stringFromPrevView=selectedString; 
[self presentModalViewController:sec animated:YES]; 
[sec release]; 
} 

stringFromPrevView을 selectedString을있는 NSString을 가지고

나는이 의지가 당신에게

+0

답장을 보내 주셔서 감사 드리며 다시 돌아올 것입니다 :) –

+0

나는 뷰 1에 버튼이 있습니다. 단추 선택기보기를 클릭하면 사용자가 행을 선택하면 이전보기의 선택기보기에서 선택된 행에 해당하는 미리 알림을 표보기로 표시하는 컨트롤러 2보기로 이동합니다. 내가 제안한 모든 것을했습니다. 즉 selectedString = [arrayNo objectAtIndex : row]; 이를 문자열보기 controller2에 할당합니다. sec.stringFromPrevView = selectedString; 콘솔에 NSLog (@ "String = % @", sec.stringFromPrevView)를 표시했습니다. 올바른 –

+0

을 사용하지만 View2에서이 쿼리를 사용할 때 [즉, SELECT * FROM 미리 알림에서 Grp = % @ \ "", Group]; 그룹 값이 null 값으로 표시됩니다. 쿼리가 작동하지 않습니다! 어떻게 쿼리를 탐색하기 전에 할당 한 문자열 값을 지정하거나 참조 할 수 있습니까? 사전 :) –

관련 문제