【发布时间】: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