나는 UITableviewController
이고 행이 선택되면 다시 rootViewController
으로 이동하여 테이블 뷰에 행의 텍스트를 표시하려고합니다. 무슨 일이 벌어지고 popToRootViewController
함수가 호출되기 전에 내 일반 뷰 컨트롤러의 viewWillAppear
이 호출되고 있으므로 일반 뷰 컨트롤러로 이동하면 텍스트가 표시되지 않습니다. viewDidAppear
도 사용해 보았는데 작동하지 않습니다. 여기에 내가 시도하는 코드입니다 :popToRootViewController는 viewWillAppear 전에 호출됩니다.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"row was selected");
user[@"school"] = [[_objects objectAtIndex:indexPath.row] objectForKey:@"title"];
[[PFUser currentUser] saveInBackground];
[self.navigationController popToRootViewControllerAnimated:YES];
}
그리고 일반 뷰 컨트롤러 :
내가 콘솔에 표시되는 내용- (void)viewWillAppear:(BOOL)animated
{
NSLog(@"will appear ran");
PFUser *currentUser = [PFUser currentUser];
self.userSchoolLabel.text = currentUser[@"school"];
}
있다가 밖으로 다음
"will appear ran"
및 인쇄 "행을 선택했습니다"
어떻게 내가 0 메서드를 호출하면이 문제를 해결할 수 있습니다다른보기 컨트롤러의 단추를 누르면 정상적으로 작동합니다. 문제는 행을 선택하는 것입니다. 그 이유는 무엇입니까?
미리 도움을 주셔서 감사합니다. 정말 감사.
그것이 stroyboard 기반 응용 프로그램입니다 참조 세부 사항에 대한 ... 방법 : 당신이있는 tableview에서 사용 가능 편집을 설정하는 경우에도
, 그것은 didSelectRowAtIndex를 호출 할 수 있습니다? – n00bProgrammer
요구 사항 : 행 -> popToRootView (RegularViewController)를 선택하십시오. 하지만, RegularViewController의 viewWillAppear가 먼저 발생하고 didSelectRow가 발생합니까? 권리? – nmh
내가 게시 한 코드에는 아무 것도 없다고 생각합니다. 어쩌면 뭔가 - (UITableViewCell *) tableView : (UITableView *) tableView cellForRowAtIndexPath : (NSIndexPath *) indexPath 메서드? – dietbacon