【问题标题】:ios 5 storyboard : navigate through detail view items without returning to master tableios 5 故事板:浏览详细视图项目而不返回主表
【发布时间】:2012-05-28 23:48:48
【问题描述】:

我正在使用故事板来完成以下任务:

我有一个主视图,其中包含一个包含多个项目的表视图。 我的主视图嵌入在导航控制器中。我的主视图有一个子类“MasterViewController”

然后我有一个详细视图。这没有嵌入在导航控制器中。我的详细视图有一个子类“DetailViewController”; 我的表格单元格和详细视图之间有一个 segue。

单击我的 masterview 表中的项目会推送到 detailview。

然后我希望能够在我的详细视图中浏览我的主视图表项,而无需返回主视图。 我有一个“上一个”和一个“下一个”按钮,但是这些按钮的操作应该是什么?

自 2 周以来我才开始使用目标 c 和 xcode,所以我仍然是这个菜鸟...... 感谢您的帮助。

我在某处读到我应该做这样的事情:

// Just remove the current 
[self.navigationController popViewControllerAnimated:FALSE];

// Create a new 
DetailViewController* newcontroller = [DetailViewController alloc] init];

// init detailview object ....

[self.navigationController pushViewController:newcontroller animated:FALSE];

但是这段代码只是让我回到主视图...

更新:

好的,我已经设法导航到内部详细信息视图,但是当单击下一个项目时,我的所有网点都消失了???

这是我的“下一步”按钮的代码:

    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];

    // fetch next object and pass it to the new detailviewcontroller
    detailViewController.detailItems = self.detailItems;

    UINavigationController *navController = self.navigationController;

    // Pop this controller and replace with another
    [navController popViewControllerAnimated:NO];

    [navController pushViewController:detailViewController animated:NO];

执行上面的代码会弹出详细视图并推送到新的详细视图。但现在我只有一个空的详细视图...... 在我的 detailview 的 viewdidload 方法中,我设置了一个 NSLOG 来打印我的 detailitems 对象,它可以很好地显示下一个对象,但现在我的标签都不可见了......

在我的 viewdidload 中,我有以下代码:

NSString *itemName = [self.detailItems objectForKey:@"name"];
NSLOG(@"current item : %@",itemName); 
// Correctly shows the current item name

还有以下内容:

self.nameLabel.text = itemName;
NSLog(@"name label : %@",self.nameLabel.text);

但上面的代码仅在我最初从主视图推送到详细视图时显示标签文本。 一旦我进入详细视图并单击“下一步”按钮,就会打印出来:

name label : (null)

好像我的标签在推送到新的详细视图时不知何故消失了???

请帮忙!

【问题讨论】:

    标签: iphone ios5 xcode4 uinavigationcontroller storyboard


    【解决方案1】:

    好的,我自己找到了解决方案...

    刚改了1行:

    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];
    

    我用下面的代码替换了上面的代码,鲍勃是你的叔叔:

    DetailViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"myDetailView"];
    

    “myDetailView”是我的详细视图的标识符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-20
      • 2012-05-19
      • 2012-04-21
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      相关资源
      最近更新 更多