2013-08-05 3 views
0

테이블 뷰가있는 뷰 컨트롤러에서 상세 뷰에 내용을로드하는 것이 더 효율적입니까?테이블 뷰가있는 뷰 컨트롤러에서 상세 뷰에 내용을로드하는 것이 더 효율적입니까?

변수를 didSelectRowAtIndexPath: 메소드의 상세보기로 전달해야합니까? 아니면 서버로 JSON 호출을하고 상세보기의 사전에 데이터를로드하는 것이 더 좋습니까? 나는 didSelectRowAtIndexPath: 방법을 통해 도움

+0

모든 뷰 컨트롤러에 모든 데이터를로드하고 상세 뷰 컨트롤러에서 선택한 인덱스 데이터를 전달합니다. –

답변

0

이미 테이블 뷰 컨트롤러에서 전체 데이터가있는 경우 너무 많은 변수를 전달하는 대신 개체를 전달할 수 있습니다. 단순히 도메인 클래스를 만들고, 변수와 객체를 선언하고, 속성을 설정하고 합성하십시오. 이제이 도메인 클래스 객체를 컨트롤러에 전달하십시오. 그러나 테이블 뷰에 데이터가 있고 더 자세한 정보를 가져 오기 위해 서버 호출을해야하는 경우에는 ID 만 전달하고 상세 뷰에서만 서버 호출을 할 수 있습니다.

0

에 대한

감사를 상세 뷰에 뷰 컨트롤러에서 데이터를 그것은 데이터에서 오는 귀하의 질문에 전혀 분명하지 않다 통과 할 때

이 좀 지연 통지 . 테이블 뷰에서 항목을 선택하면 상세 뷰를 표시하기 전에 해당 항목에 대한 추가 정보를 가져 오기 위해 웹 서비스 호출을해야한다는 JSON 호출을 언급했기 때문에 가정합니다.

그런 경우 세부 정보보기 컨트롤러에서 웹 서비스 호출을하고 데이터를로드해야합니다. Apple의 인터페이스 가이드 라인은 응답 성을 나타 내기 위해이 방법을 권장합니다. 상세 뷰 컨트롤러는 테이블 뷰의 행을 탭한 직후에 표시됩니다. 세부 정보보기에서 활동 표시기 또는 로딩 그래픽을 사용하여 추가 정보가 다운로드 중임을 사용자에게 알릴 수 있습니다.

이것은 데이터 다운로드를 기다리는 것보다 훨씬 좋은 경험이며 다음에 만보기 전환을 실행합니다.

+0

그래서 레코드 ID를 자세히보기로 전달한 다음 모든 데이터에 대해 웹 서비스를 호출해야합니다. 지금은 테이블 뷰의 데이터를 didSelectRow 메소드의 상세 뷰로 전달합니다. detailViewController.titleStr = [[publicDataArray objectAtIndex : indexPath.row] objectForKey : @ "title"]; – user2588945

+0

예, 레코드 ID를 상세보기 컨트롤러에 전달하고 상세보기 컨트롤러가 서비스에서 추가 정보를 가져 오도록 처리하도록합니다. – lxt

0

사용 didSelectRowAtIndexPath: 방법은 ID 또는 detailedViewController에 고유 변수를 보낼 ... 그리고 detailedViewControllerviewDidLoad:에서 JSON 데이터를 얻기 위해이 유일한 변수 또는 ID를 사용하거나 viewWillAppear:이 용이하고 detailedViewController

에 데이터를 게시하는 가장 좋은 방법합니다
0
DetailView = [[DetailViewController]alloc]init]; 
DetailView.strValue = sValue. 
[self.navigationController pushViewController:DetailView animated:Yes]; 

DetailView는 사용자 세부 뷰의 개체입니다. 이 클래스를 가져 와서 위와 같은 인스턴스를 만들고 strValue는 자세히보기에서 가져온 문자열이고 sValue는 현재보기의 문자열입니다. 컨트롤러에서 다른 값으로 전달되는 값이 있습니다.

이것을 확인하십시오. link도 있습니다.

+0

감사합니다! 그게 내가 지금하고있는 일이야. 따라서 하나의 VC에서 다른 VC로 데이터를 전달하고 상세 뷰에서 다시 다운로드하여 구문 분석 할 필요는 없습니다. – user2588945