我觉得问这个很无知,因为我知道这很简单。目标:离开后在视图上保留一个变量,然后返回它。
例如:假设我们有MainView、CategoryView和 (drumroll) ProjectView
应用程序打开到MainView它显示一个表 - 用户选择他们想要选择一个类别。这将它们转移到CategoryView。一旦做出选择,我将选择的类别发送回MainView。通过
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
这里没问题。MainView 接收变量并将所选类别显示为“类别”部分中的子文本。接下来,用户想要选择一个项目名称(这也是一个预定义的列表),他们选择项目,然后我将变量发送回 MainView。
- 现在有人可以(温和地)向我解释为什么当我返回主视图时,以前持有“选择”类别的 NSString 变量现在为空?
所以我的 NSString selectedProject 没有被正确保留?我应该在这里做什么正确的实现?或者我错过了什么?我真的很想了解发生了什么,所以任何事情都会有很大帮助。
主视图界面
@interface MainViewController : UIViewController {
NSString *selectedProjectName;
NSString *selectedCategory;
}
@property (nonatomic, retain) NSString *selectedProjectName;
@property (nonatomic, retain) NSString *selectedCategory;
@end
主视图实现
@implementation MainViewController
@synthesize selectedCategory, selectedProjectName;
如果你需要它.. ProjectView 实施
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"masterSegue"]) {
MainViewController *vc = (MainViewController *)[segue destinationViewController];
LogValues *lv = [LogValues alloc];
lv.project = @"Test Project Name";
vc.selectedProjectName = lv.project;
}
}