오래 전부터 알고 있었지만 두 번째보기에서는 대리인을 만들어야합니다.
@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
인치 그러나 첫 번째보기 컨트롤러 내 tableview 업데이트되지 않습니다. – nonolays
첫 번째보기 컨트롤러에서 다음을 추가합니다. - (void) viewWillAppear : (BOOL) animated {[super viewWillAppear : animated]; [_tableView reloadData]; } –