如何在iPad上使用故事板,使用拆分视图控制器(iOS5.0)?

时间:2011-10-19 23:53:52

标签: ios ipad ios5 storyboard

我无法找到适当的示例当用户在主视图中选择某些内容时,如何在详细信息视图中显示新视图?

6 个答案:

答案 0 :(得分:0)

也没找到任何东西。可行的解决方案是继续为每个视图(或至少复杂的视图)制作故事板,并让appDelegate类包含它们。我真的很惊讶故事板ide不允许添加子视图...也许在下一次更新中,如果还没有。

答案 1 :(得分:0)

Matthijs Hollemans的书"ios5 by tutorials"包括如何在ipad上使用故事板。但那本书需要购买,机器人免费。我只想找到示例代码,但失败了。

答案 2 :(得分:0)

您可以按照以下方式执行此操作。

  1. 创建一个新协议作为委托MyDataDelegate.h。
  2. 
    @protocol MyDataDelegate
    - (void)sendDataToView:(MyData *)data;
    @end
    

答案 3 :(得分:0)

    您的DetailViewController.h文件中的
  1. 
    
        @interface DetailViewController : UIViewController 
    
    
      您的DetailViewController.m文件中的
    1. 
      
          - (void)sendDataToView:(MyData *)data
          {
              // your code how to display data.
          }
      
      

答案 4 :(得分:0)

使用Xcode 4创建主 - 详细应用程序项目模板。转到故事板文件,展开主视图并添加另一个静态单元格,方法是选择名为“Detail”的默认静态单元格并按Cmd + D.将新静态单元格命名为“Hello”(或任何您喜欢的。) 现在在MasterViewController.m文件中,实现:

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

此示例将detailViewController中的默认标签设置为masterViewController的选定单元格nam。 请注意,setDetailItem:方法采用id参数,在此示例中,您传递的是NSString *。

答案 5 :(得分:-2)

  1. MasterViewController.h
  2. 
    
        @property (assign,nonatomic) id delegate;
    
    
    1. MasterViewController.m
    2. 
      
          - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
          {
              if (delegate!=nil) {
                  // get your data here   { your code here } 
                  [delegate sendDataToView:data];
              }
          }
      
      
      1. 在您的AppDelegate.m文件中。
      2. 
        
            - (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;
            }