如何从表列表中加载具有不同数据的相同 UIVew?

发布于 2024-12-25 04:17:32 字数 430 浏览 1 评论 0原文

我有一个小项目,我正在尝试为游戏构建食谱列表。我的 UITableView 运行得很好 - 唯一的问题是我不知道如何将每个单元格与 DetailView 连接。目前,如果您选择任何单元格,它会执行选择动画并且不会出现任何结果。

我也不知道解决这个问题的最佳方法是使用最新的 iOS5 SDK 和 iOS5。 Xcode 4.2。我对故事板不太熟悉,但我认为一定有一种比为每个菜谱创建 40 个不同的详细视图更简单的方法。

我的希望是创建一个新的 Recipe.h/Recipe.m 对象集并在其中保存所有数据。然后它可以加载到相同的 DetailView 模板中,但信息会根据选择的配方而变化。我希望这是有道理的?

如果我可以澄清任何事情,请告诉我。我已附上我的项目源代码如果这会有所帮助...提前致谢!

I have a small project where I'm trying to build a recipe list for a game. I have my UITableView running great - the only problem is that I don't know how to connect each cell with a DetailView. Currently if you select any of the cells it does the selection animation and goes nowhere.

I also don't know what the best way to approach this would be using the newest iOS5 SDK & Xcode 4.2. I am barely familiar with storyboards but I assume there must be an easier way than creating 40 different DetailViews for each recipe.

My hope was to create a new Recipe.h/Recipe.m Object set and hold all the data in there. Then it could be loaded into the same DetailView template, but the information would change depending on which recipe was selected. I hope this makes sense?

Please let me know if I can clarify anything. I've attached my project source code if this would be helpful... thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鲜血染红嫁衣 2025-01-01 04:17:32

首先,将这段代码添加到您的MasterViewController.m中,

#import "DetailViewController.h"

然后打开您的MainStoryboard.storyboard,然后按照以下步骤操作:

  1. 向MasterView中的tableview添加一个UITableViewCell
  2. 在单元格的检查器中,选择“样式”为“基本”,并将其标识符指定为“单元格”。
  3. 按住 Control 键并单击单元格并拖动一条线直到 DetailView 并选择 Push 选项。您应该能够看到 Storyboard segue。将其标识符指定为“showDetail”。
  4. 然后进入MasterViewController.m并在cellForRowAtIndexPath:中注释以下代码

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier];

    这是因为您已经从

    获取了一个单元格

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

  5. 然后在MasterViewController.m中添加以下代码

    -(void)prepareForSegue:(UIStoryboardSegue *)segue 发件人:(id)sender
    {
      if ([segue.identifier isEqualToString:@"showDetail"])
      {
        DetailViewController *dvc = segue.destinationViewController;
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        [dvc setDetailItem:[self.harvestRecipeList objectAtIndex:indexPath.row]];
      }
    }
    

并运行。你应该可以走了。

First of all, add this piece of code to your MasterViewController.m,

#import "DetailViewController.h"

Then open your MainStoryboard.storyboard, then follow these steps :

  1. Add a UITableViewCell to the tableview in MasterView.
  2. In the cell's Inspector, select style as Basic, and give its identifier as "Cell".
  3. Control + click the cell and drag a line till DetailView and select Push option. You should be able to see a Storyboard segue. Give its identifier as "showDetail".
  4. Then go to MasterViewController.m and comment the following code in cellForRowAtIndexPath:

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    This is because you are already getting a cell from

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

  5. Then add the following code in MasterViewController.m

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
      if ([segue.identifier isEqualToString:@"showDetail"])
      {
        DetailViewController *dvc = segue.destinationViewController;
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        [dvc setDetailItem:[self.harvestRecipeList objectAtIndex:indexPath.row]];
      }
    }
    

Build and run. You should be good to go.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文