我已经编辑了整个问题
在以下情况下呈现 ModelView 控制器和关闭模态视图控制器有什么区别?
- 主页查看
- 表项选择视图
- 选择器视图
在HomeView
中,我正在编写代码viewWillAppear
以从 TableView 设置的 NSUserDefault 中获取值。下面是我的 viewDidLoad(初始值)和 viewWillAppear(当来自 tableview 的新值)的代码
- (void)viewDidLoad
{
[super viewDidLoad];
actionMinutes = @"0";
actionSeconds = @"0";
restMinutes = @"0";
restSeconds = @"0";
}
- (void) viewWillAppear:(BOOL)animated
{
actionMin = [actionMinutes intValue];
actionSec = [actionSeconds intValue];
restMin = [restMinutes intValue];
restSec = [restSeconds intValue];
NSLog(@"acMin:%d acSec:%d reMin:%d reSec:%d",actionMin,actionSec,restMin,restSec);
}
在TableItemSelection 视图
中,我从 HomeView 呈现此视图。现在我想根据 Table 的 didSelectRowAtIndex 方法在 HomeView 中设置 NSString 的值。我NSUserDefault
用来设置值。通过完成按钮触摸,我正在展示 HomeView。(实际上我必须dismissModalViewController)但是当我使用dismiss时,我无法在HomeView的NSString中获取值。我从 PickerView 获取表的值。(我被指示这样做)。下面是我在完成按钮触摸时的表格视图代码
HomeView *homeView = [[HomeView alloc] init];
[homeView.view setBackgroundColor:[UIColor clearColor]];
[homeView.view setFrame:CGRectMake(0 ,40, 320, 460)];
homeView.actionMinutes = [[NSUserDefaults standardUserDefaults] valueForKey:@"actionMinute"];
homeView.actionSeconds = [[NSUserDefaults standardUserDefaults] valueForKey:@"actionSecond"];
homeView.restMinutes = [[NSUserDefaults standardUserDefaults] valueForKey:@"restMinute"];
homeView.restSeconds = [[NSUserDefaults standardUserDefaults] valueForKey:@"restSecond"];
homeView.song = [[NSUserDefaults standardUserDefaults] valueForKey:@"songstring"];
NSLog(@"%@",homeView.actionMinutes);
[self presentModalViewController:homeView animated:YES];
//[self dismissModalViewControllerAnimated:YES]; // if this method is used then no values are passed to HomeView
[homeView release];
在PickerView 中 ,我从 pickerview 中获取值,然后将其存储在 UserDefault 中。下面是我的pickerview代码
NSUserDefaults *actionTime = [NSUserDefaults standardUserDefaults];
[actionTime setValue:min forKey:@"actionMinute"];
[actionTime setValue:sec forKey:@"actionSecond"];
那么为什么我在关闭 ModelView 时无法获得 UserDefault 值。???每次呈现一个新视图都会产生一堆视图???