2009-10-22 3 views
1

는 I 탐색 바의 우측 기본 편집/완료 버튼 배열에서 문자열의 목록을 표시하는 UINavigationController의 간단한 UITableViewController있다. 사용자 제공 문자열을 사용하여 UITableView에 행을 추가하는 가장 쉬운 방법은 무엇입니까?

편집 버튼을 눌러

UITableView 올바르게 애니메이션 및 삭제 빨간색 마이너스 아이콘을 보여줍니다. 삭제 단추를 누르면 테이블보기와 배열에서 행이 제거됩니다 ( UITableViewControllertableView:commitEditingStyle:forRowAtIndexPath: 메서드에서 구현 됨).

지금은 사용자가보기에 행을 추가 (및 기본 배열에 문자열을 추가) 할 수 있도록하고 싶지만, 내가 이렇게 가야하는 방법을 잘 모르겠어요. commitEditingStyle 메서드는 else if (editingStyle == UITableViewCellEditingStyleInsert)이지만 사용자가 문자열을 입력 할 수있는 방법을 모르겠습니다.

테이블 뷰 프로그래밍 가이드 (특히 the example of adding a table-view row)를 읽었지만 사용자에게 문자열을 가져 오는 데 전혀 새로운 UIViewController 하위 클래스가 필요합니다.

쉬운 방법이 있습니까?

답변

2

다른 일을 할 필요가있다. 당신은

[[self parentViewController] dismissModalViewControllerAnimated: YES]; 

또는 당신이 설정 새로운 뷰 컨트롤러를위한 프로토콜은 원래 통지 할 수 수를 호출 할 수 있습니다

SomeViewController* theViewController = [[SomeViewController alloc] init]; 
[self presentModalViewController: theViewController animated: YES]; 
[theViewController release]; 

theViewController 멀리 갈 준비가되어

를 호출하여 모달 제시 할 수 있습니다 다시있는 NSString을 원한다면보기 완성의 컨트롤러와 다시 값을 보내, 당신은 다음 deleg있을 것

@protocol MyViewControllerDelegate 
- (void)myViewControllerDelegate: (MyViewController*)myViewController didFinishWithValue: (NSString*)theString; 
@end 

MyViewController를 사용할 수 있습니다 당신이 원래 뷰 컨트롤러가 해당 프로토콜을 채택하고이 메시지를 수신 할 때 모달 뷰 자체를 기각한다 프로토콜 방법을 사용하는 경우 재산

@interface MyViewController 
{ 
    id<MyViewControllerDelegate> delegate; 
} 
@property(nonatomic,assign) id<MyViewControllerDelegate> delegate; 
@end 

을 먹었다.

나는 처음에는 조금 복잡하게 보일 수, 즉 밖으로 도움이되기를 바랍니다 있지만, 데이터 수집은 매우 쉽습니다.

0

직접 UIAlertView 또는 유사한 클래스를 사용할 수 있습니다. 문자열을 요청하고 올바른 콜백을 설정 한 다음 데이터 소스에서 팝하는 모달 뷰를 팝업하십시오.

당신은 또한 텍스트 뷰 콜백에 다음 자리 표시 자 "를 편집 할 탭의"텍스트 뷰를 제거하고 문자열을 표시하려면 UITextView하고있는 셀을 삽입 할 수 있습니다. 또한 편집 드릴 다운 또는 다른 뷰 컨트롤러가 아마도 장기적으로 가장 쉬운 방법이 될 것입니다 만들기

관련 문제