我知道那是很久以前的事,但你應該創建第二視圖的委託。
@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]; } –