2009-08-14 5 views
0

텍스트 항목 목록을 가지고 가장 좋은 방법을 탭하여 편집 할 수 있습니까? 상세보기로가는 건 어때? 그렇다면 어떻게하면 UITableView로 다시 돌아갈 수 있을까요?UITableView로 List/Detail Editing을 어떻게합니까?

SQL 또는 CoreData로 모두 수행 할 수 있지만 UITableView는 배열을 기반으로하므로이 배열의 요소를 편집하고 테이블보기를 다시 설정할 수 있습니까?

궁극적으로 데이터를 영구화하여 CoreData 또는 SQL로 이동 하겠지만 지금은 목록에서 세부 정보로 이동하고 세부 정보를 편집 한 다음 목록으로 돌아가고 싶습니다.

+0

내비게이션 컨트롤러, 모달 뷰 등이 있습니다. –

+0

예, 특정 샘플을 찾고 있습니다. UITableView를 세부 UIView로 연결했습니다. 표의 선택한 텍스트가 자세히보기의 텍스트 필드로 표시되지만 해당 텍스트를 편집하여 표보기로 되돌릴 수는 없습니다. 누구에게나 구체적인 아이디어가 있습니까? –

답변

0

"그렇다면 어떻게하면 UITableView로 다시 돌아갈 수 있습니까?"

테이블 뷰와 상세 뷰 모두 공통 모델 객체에 액세스해야합니다. 즉, 데이터를 변경하는 세부 뷰는 테이블 뷰가 있는지조차 알 필요가 없습니다.

0

프로토콜 조회. 기본적으로 공유 할 정보가있는 클래스가 있습니다. 이 경우 위에서 언급 한 것처럼 세부 컨트롤러 또는 일종의 데이터 개체가됩니다. 공유 할 정보가있는이 클래스가 해당 정보를 사용하는 프로토콜을 선언하게하십시오. 메서드는 매개 변수를 사용하여 정보를 몰래 가져와야합니다. 또한 클래스는 이라는 id (보다 작은) 프로토콜 (위보다)을 위임자로 선언합니다. 여기서 "프로토콜"은 위에서 선언 한 것입니다.

이제이 클래스에서 공유하려는 정보를 얻었을 때 (그러나 그렇게 함) 대리인에게 메시지를 보냅니다. [delegate informationObtained:newInfo].

이 정보가 필요한 클래스 또는 클래스의 경우 프로토콜 방법을 구현하십시오. 필요한 정보가 매개 변수에 의해 메소드에 전달됩니다. TextFieldDelegateUIPickerFieldDelegate을 사용하는 것과 같은 방법으로 프로토콜을 결정하고 프로토콜을 구현하는 방법을 결정합니다. 다음 코드 예제입니다

SpeakHereController.h 인터페이스에서

@protocol SpeakHereControllerDelegate 
-(void)newSoundCreated:(NSString *)newSoundName savedFile:(BOOL)savedFile element: (id)element; 
-(void)cancelNewSound; 
-(void)soundEdited; 
@end 

에서

: ID 위임; 내가 정보를 한 번 내가 공유하고자하는, 구현 파일에서

을 (할당되지 않은 원자)이를 위해선, @property를 잊지 마세요 다음의 tableview 컨트롤러 이제

[self.delegate newSoundCreated:myFileName savedFile:self.savedFile element:self]; 

을 그

01 : 그런 다음 실행 파일의 메소드를 구현하면 프로토콜을

@interface AlarmSoundsTableViewController : UITableViewController <SpeakHereControllerDelegate, UITableViewDataSource, UITableViewDelegate> 

을 구현하고자하는 .H 파일 선언에 :이 정보를 사용하고자

관련 문제