【发布时间】:2013-12-14 19:43:24
【问题描述】:
我有一个带有 2 个按钮的 AAAViewController 和带有要显示一些 plist 内容的单元格的 BBBTableViewController(我使用故事板)。当按下按钮 btnAAA 时,我想显示 aaa.plist 内容,当按下 btnBBB 时,应该在表格视图中显示 bbb.plist。 我的想法是将 IBActions 分配给按钮,将结果存储到 NSUserDefaults 并在下一个视图控制器的 ViewDidLoad 中收集它:
-(IBAction)pressedAAA {
whatPressed = 1;
//saving my data
NSString *saveWhatPressed = @"AAA";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveWhatPressed forKey:@"savedWhatPressed"];
[defaults synchronize];
}
-(IBAction)pressedBBB {
whatPressed = 2;
//saving my data
NSString *saveWhatPressed = @"BBB";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveWhatPressed forKey:@"savedWhatPressed"];
[defaults synchronize];
}
whatPressed 在另一个控制器中的集合:
- (void)viewDidLoad
{
//import data from AAA view
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
loadWhatPressed = [defaults objectForKey:@"savedWhatPressed"];
NSLog(@"WhatPressed2: %@", loadWhatPressed);
if (loadwhatPressed == 1) {
NSString *libraryFile = [[NSBundle mainBundle] pathForResource:@"AAA" ofType:@"plist"];
} else {
NSString *libraryFile = [[NSBundle mainBundle] pathForResource:@"BBB" ofType:@"plist"];
}
[super viewDidLoad];
}
但它失败了 - NSLog 中显示的参数总是显示 whatPressed 的先前值。
下一次,我在 IBAction 中为每个按钮设置了 whatPressed 的值,但我没有 这次使用 NSuserDefaults。然后我尝试了segue,但没有任何成功。
如何正确操作?
一般:
我需要在我的 BBBViewController 中的 ViewDidLoad 中知道在 AAAViewController 中按下了哪个按钮。如果我知道的话,我会使用 if-else 函数来设置一个合适的 .plist。
这是个好主意吗?或者也许有更好的方法?
【问题讨论】:
标签: ios iphone uitableview uibutton plist