간단하다는 것을 알고 있기 때문에이 질문에 대해 무지하게 느낍니다. 목표 : 이탈 후 뷰에서 변수를 유지 한 다음 반환합니다. 예를 들어iOS보기에서 여러 변수를 그대로 둔 채로 두십시오.
:의 우리가 MAINVIEW, CategoryView과 (드럼 롤) Projectview로
응용 프로그램 MAINVIEW이 테이블을 표시 열립니다 있다고 가정 해 봅시다 - 사용자들은 카테고리를 선택하려면 선택합니다. 이 segue는 카테고리 뷰입니다. 선택이 완료되면 선택한 카테고리를 MainView으로 다시 보냅니다. via
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
여기에 문제가 없습니다. MainView는 변수를 수신하고 '카테고리'섹션에서 선택한 카테고리를 하위 텍스트로 표시합니다. 다음으로 사용자가 프로젝트 이름을 선택하려고합니다 (미리 정의 된 목록이기도합니다). 항목을 선택하고 변수를 MainView로 보냅니다.
- 지금 누군가가 나에게 설명 할 수 있습니다 (부드럽게) 왜 내가 메인 뷰로 돌아 왔을 때 이전에 '선택된'카테고리를 보유하고 있던 NSString 변수가 이제 null입니까?
내 NSString selectedProject가 올바르게 유지되지 않습니다? 내가 여기서해야 할 올바른 구현은 무엇입니까? 아니면 나는 무엇을 놓치고 있습니까? 나는 정말로 무슨 일이 일어나고 있는지 이해하려고 노력하고있어 어떤 것도 큰 도움이 될 것입니다.
MAINVIEW 인터페이스
@interface MainViewController : UIViewController {
NSString *selectedProjectName;
NSString *selectedCategory;
}
@property (nonatomic, retain) NSString *selectedProjectName;
@property (nonatomic, retain) NSString *selectedCategory;
@end
MAINVIEW 구현
@implementation MainViewController
@synthesize selectedCategory, selectedProjectName;
당신은 .. Projectview로 구현 필요하면
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"masterSegue"]) {
MainViewController *vc = (MainViewController *)[segue destinationViewController];
LogValues *lv = [LogValues alloc];
lv.project = @"Test Project Name";
vc.selectedProjectName = lv.project;
}
}
,
아마도 기본보기로 "돌아 오지"않기 때문에 아마도 새로운 인스턴스를 만들 것입니다. 어떻게 메인 뷰 (어떤 종류의 세그)로 "뒤로"가야합니까? – rdelmar
돌아온다 나는 segue가 모달로 설정되어있다 –