Ela*_*hts 4 iphone objective-c storyboard ios segue
我有一个NavigationController,里面有一个TableView.电视中的单元格有一个"模态"segue,指向TableViewController(Class:Details.h/.m).当我选择单元格时,我按预期将其带到TableViewController.
但是我需要添加以下功能:
1)推到目的地所以我得到一个很好的后退按钮.
2)将所选单元中的各种对象信息传递到目的地TVC.
为此,我执行以下任务:
1)将segue更改为"push"并为其指定标识符"segueToDetails"
2.1)将代码添加到didSelectRowAtIndexPath方法(如下)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"segueToDetails" sender:self];
}
Run Code Online (Sandbox Code Playgroud)
2.2)将代码添加到prepareForSegue方法(如下)
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
NSInteger rowNumber = selectedIndexPath.row;
myObject = (MyObject *) [myArray objectAtIndex:rowNumber];
Details *details = [segue destinationViewController];
details.detailsObject = myObject;
}
Run Code Online (Sandbox Code Playgroud)
2.3)确认对象信息正在传递到目的地我使用NSLog输出一些数据(下面)
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"name: %@", detailsObject.name);
}
Run Code Online (Sandbox Code Playgroud)
现在,当我运行项目并在表格中选择一个单元格时,我会被带到目的地TVC,我看到NSLog的输出很好.我也有一个很好的后退按钮.但等等,当我点击回来时,我有另一个后退按钮!单击该返回按钮然后返回到我最初来自的位置.每次我切换到目标TVC时,调试器窗口都会显示此消息.
2012-01-24 13:55:58.240 MyApp[26875:11603] nested push animation can result in corrupted navigation bar
012-01-24 13:55:58.593 MyApp[26875:11603] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2012-01-24 13:55:58.593 MyApp[26875:11603] Unbalanced calls to begin/end appearance transitions for <SpotDetails: 0x7a7a370>.
Run Code Online (Sandbox Code Playgroud)
有关如何解决此问题的任何建议?
PS - 我正在使用Xcode 4.2 w/ARC,iOS 5
Sep*_*pui 13
你正在推动观点两次; 一次在故事板中,一次在didSelectRowAtIndexPath中.当您在故事板中连接segue时,不要直接将其链接到表格单元格,而是链接到视图控制器,以便您可以按编程方式执行segue,而不是在按下单元格时为您执行此操作的故事板.
Rob*_*Rob 12
如果故事板中有模态segue,则不需要didSelectRowAtIndexPath中的代码:.故事板将完成剩下的工作.如果您尝试手动执行segue并将其放在故事板中,则会遇到问题.