(IOS) 我有一个UITableView作为根视图(屏幕1)。当选择一个单元格时,它会推送一个包含两个按钮的新UIView(屏幕2)。当按下其中一个按钮时,按下新的UIView(屏幕3)。 我想将屏幕1中的一些键值对传递给屏幕2和屏幕3.使用下面的代码我可以毫无问题地将值传递给屏幕2,但屏幕3返回零作为值,无论哪个单元格是采摘。任何关于为什么会发生这种情况的帮助都会很棒。 (另一种方法是在屏幕2中使用switch-cases将值传递给屏幕3)
屏幕1:
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
NSDictionary *sentItems = [NSDictionary dictionaryWithObjectsAndKeys:indexPath, @"indexPath", nil];
[destination setValue:sentItems forKey:@"sentItems"];
答案 0 :(得分:1)
我认为最简单的解决方案是传递sentItems
或类似字典,其中包含在初始化第二和第三视图时可能需要的所有值。
因此,如果您需要视图2的值X,Y
和视图3的A,B,C
或备用按钮视图3的D,E,F
,请传递一个定义了X,Y,A,B,C,D,E,F
的字典来查看在显示之前2,然后在选择其中一个按钮但在显示该视图之前将适当的值传递给视图3.
根本不需要回顾堆栈。如果您的第一个视图实际上是应用程序的根视图,您还可以选择在应用程序委托类中定义此字典,以便通过[[UIApplication sharedApplication]
delegate]
全局访问它。