2011-10-19 10 views

答えて

-2
  1. MasterViewController.h


    @property (assign,nonatomic) id delegate; 

  1. MasterViewController.m


    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     if (delegate!=nil) { 
      // get your data here { your code here } 
      [delegate sendDataToView:data]; 
     } 
    } 

    AppDelegate.mファイル内の
  1. Xcodeの4を使用して


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
     // Override point for customization after application launch. 
     UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; 
     UINavigationController *navigationController = [splitViewController.viewControllers lastObject]; 
     splitViewController.delegate = (id)navigationController.topViewController; 


     // set the view controller here 
     UINavigationController *masterNavController = [splitViewController.viewControllers objectAtIndex:0]; 
     MasterViewController *masterViewController = [masterNavController.viewControllers objectAtIndex:0]; 
     UINavigationController *detailNavController = [splitViewController.viewControllers objectAtIndex:1]; 
     DetailViewController *detailViewController = [detailNavController.viewControllers objectAtIndex:0]; 
     masterViewController.delegate = detailViewController; 

     return YES; 
    } 

+1

これはどのようにしてストーリーボードに分割ビューコントローラを設定することに関連していますか? – memmons

0

何も見つかりませんでした。実用的な解決策は、各ビュー(または少なくとも複雑なもの)のストーリーボードを作成し、appDelegateクラスにそれらを含むようにすることです。私は実際にはストーリーボードideは子供のビューの追加を許可していない驚いている...おそらく次回のアップデートではない場合は。

0

Matthijs Hollemansの書籍"ios5 by tutorials"には、ipadでのストーリーボードの使用方法が含まれています。その本は、ボットフリーで購入する必要があります。サンプルコードを探したかっただけですが、失敗しました。

+0

はい私はその本に例があるのを見ましたが、単純な例のために本を買うのはちょっと愚かです。 – tadasz

+0

デリゲートとしてプロトコルを作成できます。デリゲートは、MasterViewControllerからDetailViewControllerにデータを送信するために使用されます。 – pyanfield

0

以下のようにすることができます。

  1. 代理人MyDataDelegate.hとして新しいプロトコルを作成します。あなたのDetailViewController.hファイル内

@protocol MyDataDelegate 
- (void)sendDataToView:(MyData *)data; 
@end 
0
  1. 。あなたのDetailViewController.mファイル内
    
    
        @interface DetailViewController : UIViewController 
    
    


    - (void)sendDataToView:(MyData *)data 
    { 
     // your code how to display data. 
    } 

0

マスター・ディテール・アプリケーションのプロジェクトテンプレートを作成します。ストーリーボードファイルに移動し、マスタービューを展開し、 "Detail"という名前のデフォルトのスタティックセルを選択し、Cmd + Dを押して別のスタティックセルを追加します。新しいスタティックセルの名前を "Hello"(好きなもの)とします。 あなたのMasterViewController.mファイル、これを実装する:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self.detailViewController setDetailItem:[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text]]; 
} 

この例では、masterViewControllerの選択セルNAMにdetailViewControllerにデフォルトのラベルを設定します。 注意setDetailItem:メソッドはidパラメータを取ります。この例では、NSString *を渡しています。

関連する問題