私は、この例では、モーダルとして自身を提示する第2のビューコントローラを有する:
第2のビューコントローラ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;
第2のビューコントローラMファイルでプロパティを合成することを確認し、およびデリゲートとして設定された第1のビューコントローラhのファイルに次に
- (IBAction)done:(id)sender
{
NSString *itemToPassBack = self.textView.text;
NSLog(@"returning: %@",itemToPassBack);
[self.delegate addItemViewController:self didFinishEnteringItem:itemToPassBack];
//dismiss modal view controller here
}
:これを追加
最初のビューコントローラのMファイルのsynthesizeで次に
@interface FirstPageViewController: UIViewController <SecondViewControllerDelegate>
@property (nonatomic) NSString *returnedItem;
とメソッドを追加:
- (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