よく使う機能としてはカメラの撮影やテキストフィールドの入力後処理などがあります。
自分で実装する例は下のようなかんじです。
(PopoverControllerなどでTableViewControllerを開き、そこで選択した情報を参照元のViewに戻すというもの)
ViewController.h
@interface ViewController : UIViewController < SubViewDelegate > { UIPopoverController *popoverController; }
ViewController.m
- (void)doAction:(id)sender { // 参照先のオブジェクト生成 SubViewController *sv = [[SubViewController alloc] init]; sv.contentSizeForViewPopover = sv.view.frame.size; sv.delegate = self; popoverController = [[UIPopoverController alloc] initWithContentViewController:sv]; [sv release]; [popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; } // 参照先のdelegate実装 - (void)subviewController:(SubViewController *)view didSelectedIndex:(NSInteger)index { [popoverController dismissPopoverAnimated:YES]; NSLog(@"selected %d", index); }
SubViewController.h
@class SubViewController; @protocol SubViewDelegate- (void)subviewController:(SubViewController *)view didSelectedIndex:(NSInteger)index; @end @interface SubViewController : UITableViewController @property (assign) id delegate;
SubViewController.m
@implementation SubViewController @synthesize delegate; 〜省略〜 - (void)tableView:(UITableView *)tableView didSelectedRowAtIndexPath:(NSIndexPath *)indexPath { [delegate subviewController:self didSelectedIndex:[indexPath row]]; }
とまぁこんなかんじです。
実際に作ってみるとそう難しいものでもないので試してみてください。
0 件のコメント:
コメントを投稿