我有兩個視圖在我的app.in第一個視圖中有一個標籤,我想更新它的值在我的第二個視圖控制器(這顯示爲一個彈出視圖)。並且在第二個視圖控制器解除後,更改的值應該位於標籤中(如lebel.text
)。我用NSUserDefault
。如何在iOS中更新以前的視圖標籤NSUserDefault值,目標c
在我的第二個視圖控制器我分配值是這樣的:
- (IBAction)updatetheDatepicker:(id)sender
{
NSDate *flightDeparturedate = self.flightDepartureDatepicker.date;
NSDateFormatter *flightdepatureFormatter = [[NSDateFormatter alloc] init];
[flightdepatureFormatter setDateFormat:@"d/MM/y"];
NSString *flightDeparturedateDisplay = [flightdepatureFormatter stringFromDate:flightDeparturedate];
NSLog(@"selected departure date :%@", flightDeparturedateDisplay);
[[NSUserDefaults standardUserDefaults] setObject:flightDeparturedateDisplay forKey:@"flightDepartureDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
,在我firstviewcontroller
當第二種觀點辭退,我想更新的標籤,我的第一view.how我能做到這一點。
self.depdate.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"flightDepartureDate"];
注:秒視圖顯示爲UIPopoverpresentationController
我這是怎麼彈出我的第二個視圖控制器從第一視圖控制器
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSString *identifier = segue.identifier;
if([identifier isEqualToString:@"popover"])
{
UIViewController *destinationController = segue.destinationViewController;
UIPopoverPresentationController *popController = destinationController.popoverPresentationController;
if(popController)
{
popController.delegate = self;
}
}
if([identifier isEqualToString:@"popoverone"])
{
UIViewController *destinationController = segue.destinationViewController;
UIPopoverPresentationController *popController = destinationController.popoverPresentationController;
if(popController)
{
popController.delegate = self;
}
}
}
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
return UIModalPresentationNone;;
}
希望這個你有所幫助。
爲什麼不使用自定義委託? – Mahesh
我想用nsuserdefault來做到這一點,是不是可能的 –
是的,這是可能的。檢查我的答案。 – Mahesh