我在此示例中呈現本身作爲模態的第二視圖控制器:
在第二視圖控制器.h文件:
@protocol SecondViewControllerDelegate <NSObject>
- (void)addItemViewController:(id)controller didFinishEnteringItem:(NSString *)item;
@end
@interface SecondPageViewController : UIViewController <UITextViewDelegate>
{
NSString *previouslyTypedInformation;
}
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (nonatomic) NSString *previouslyTypedInformation;
@property (nonatomic, weak) id <SecondViewControllerDelegate> delegate;
在第二視圖控制器米文件確保合成屬性和加然後添加這樣的:在所述第一視圖控制器.h文件
- (IBAction)done:(id)sender
{
NSString *itemToPassBack = self.textView.text;
NSLog(@"returning: %@",itemToPassBack);
[self.delegate addItemViewController:self didFinishEnteringItem:itemToPassBack];
//dismiss modal view controller here
}
然後將其設置爲代表:
@interface FirstPageViewController: UIViewController <SecondViewControllerDelegate>
@property (nonatomic) NSString *returnedItem;
然後在第一個視圖控制器的.m文件合成和添加方法:
- (void)addItemViewController:(SecondPageViewController *)controller didFinishEnteringItem: (NSString *)item
{
//using delegate method, get data back from second page view controller and set it to property declared in here
NSLog(@"This was returned from secondPageViewController: %@",item);
self.returnedItem=item;
//add item to array here and call reload
}
現在你有返回什麼文字!您可以在第一視圖控制器的viewDidLoad的字符串添加到您的陣列,並呼籲
[self.tableView reloadData];
,它應該工作。
[你試過了什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Foggzie
這個問題已經被問過太多次了。 http://stackoverflow.com/a/6204427/1271826 – Rob