1

我正在使用情节提要完成以下任务:

我有一个主视图,其中包含一个包含多个项目的表视图。我的主视图嵌入在导航控制器中。我的主视图有一个子类“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)

推送到新的详细视图时,似乎我的标签不知何故消失了???

请帮忙 !

4

1 回答 1

1

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

刚刚更改了 1 行:

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

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

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

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

于 2012-05-23T14:25:31.513 回答