我们总是需要关闭我们提供的ModelViewViewController吗?
我编辑了整个问题我们总是需要关闭我们提供的ModelViewViewController吗?
是什么呈现模型视图控制器,解聘在下列情况下模态视图控制器之间的区别?
- HomeView
- TableItemSelection查看
- PickerView
在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这一观点。现在我想根据表的didSelectRowAtIndex方法在HomeView中设置NSString的值。我正在使用NSUserDefault
来设置值。 并与完成按钮触摸我介绍HomeView。 (其实我不得不dismissModalViewController)但是,当我使用dismiss我无法获得NSString的HomeView中的值。我从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"];
那么到底为什么驳回模型视图当我不能够得到UserDefault值的代码。???是否每次呈现新视图都会形成一堆视图?
@DShah:是的最肯定.. !!
您需要关闭每个模态视图。
另请发布您正在使用的代码。
另外请记住,您需要先将NSUserDefaults行(您使用的行分配NSString值给NSUserDefaults),然后将行放在您的位置dismissModalViewControllerAnimated:
。
如果您需要更多帮助,请给我留言。
希望这可以帮助你。
我添加了所有我正在使用的代码。但是,当我使用dismissModalViewController我无法获得设置为HomeView的NSUserDefault值 – DShah
@DShah:我认为这个问题是别的。可能是代码执行的顺序,模态视图与NSUserDefaults无关。如果我没有弄错,你可以参考“Hive”中的一个情况。向你的先生询问一下。可能会帮助你 –
@DShah:得到了答案? –
我想你想存储NSUserDefaults
整数值,那么你必须
使用setInteger:forKey:而不是setObject:forKey:
。整数不是一个对象,它是一个基本类型。
检索它使用integerForKey:。
这是最终的答案,通过它,我能够解决我的问题
这里是完成按钮的触摸事件代码...
- (IBAction) btnDonePressed:(id)sender {
aurioTouchAppDelegate *appDelegate = (aurioTouchAppDelegate *) [[UIApplication sharedApplication] delegate];
appDelegate.homeView.actionMinutes = [[NSUserDefaults standardUserDefaults] valueForKey:@"actionMinute"];
appDelegate.homeView.actionSeconds = [[NSUserDefaults standardUserDefaults] valueForKey:@"actionSecond"];
appDelegate.homeView.restMinutes = [[NSUserDefaults standardUserDefaults] valueForKey:@"restMinute"];
appDelegate.homeView.restSeconds = [[NSUserDefaults standardUserDefaults] valueForKey:@"restSecond"];
// [self presentModalViewController:homeView animated:YES];
[self dismissModalViewControllerAnimated:YES]; // if this method is used then no values are passed to HomeView
}
请修改您的问题,而不是将更多信息添加为“答案”。 –
这是我能够解决我的问题的最终答案 – DShah
在这种情况下,您可以请_explain_您做了什么,而不是仅仅转储大量代码?它会让你的回答更有用。 –
你如何存储阵列中NSUserDefault?你能提供代码吗? – Maulik
你的数组是否包含自定义对象? – Maulik
抱歉,但更正..而不是NSArray其NSString ... – DShah