2014-03-29 2 views
-1

https://www.dropbox.com/s/duosl4d1fdsxehq/Storyboard.pngUINavigation을 사용하여 저장 한 후에 어떻게 되돌릴 수 있습니까?

내 실제 스토리 보드입니다. 내 앱에 UINavigation Controller를 사용하고 있습니다. 추가를 누르면 테이블에 새 경비를 추가하는보기가 열립니다. "저장"을 눌러야 할 때 무엇을해야하는지 모르겠습니다. 이전 뷰에 새로운 푸시 세그를 넣으려고했으나 작동 중입니다. 그러나 백 버튼 항목에서 "새로운 비용 추가"뷰로 돌아가라고 제안하면이 작업이 수행되어서는 안됩니다. 어떻게 애니메이션 뒤로 버튼 만 저장 버튼을 사용하여 재현 할 수 있습니까?

답변

0

오래 전부터 알고 있었지만 두 번째보기에서는 대리인을 만들어야합니다.

@protocol ExpenseProtocol; 

@interface NewExpenseViewController : UIViewController 
@property (nonatomic, weak) id<ExpenseProtocol> *delegate; 
@end 

@protocol ExpenseProtocol <NSObject> 
- (void)didCreateNewExpense:(Expense)newExpense; 
@end 

@implementation NewExpenseViewController 

- (void)savePressed:(id)sender { 
    if (self.delegate && [self.delegate responseToSelector:@selector(didCreateNewExpense:)]) { 
     [self.delegate didCreateNewExpense:_newExpense]; 
    } 
} 

@end 

그런 좋은 시작 덕분 첫 번째 뷰 컨트롤러

@interface ListExpenseViewController() <ExpenseProtocol> 
@end 

@implementation ListExpenseViewController  

- (void)didCreateNewExpense:(Expense)newExpense { 
    if (newExpense) { 
     [_arrayExpense addObject:newExpense]; 
    } 
    [self.tableView reloadData]; 
} 

@end 
0

두 번째보기 컨트롤러에서 저장 단추 클릭을 처리하는 메서드에 다음을 추가하십시오. [self.navigationController popViewControllerAnimated : YES];

+1

인치 그러나 첫 번째보기 컨트롤러 내 tableview 업데이트되지 않습니다. – nonolays

+0

첫 번째보기 컨트롤러에서 다음을 추가합니다. - (void) viewWillAppear : (BOOL) animated {[super viewWillAppear : animated]; [_tableView reloadData]; } –

관련 문제