我在此示例中呈现本身作为模态的第二视图控制器:
在第二视图控制器.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