如何在启动时将数据从uiviewcontroller发送到uipopover?

时间:2013-07-16 02:07:31

标签: ios uiviewcontroller delegates nsuserdefaults uipopover

我在许多viewcontrollers的uipopover中使用了一个uidatepicker。我需要将每个视图控制器中的选择日期保持不同,以便在uidatepicker再次在各自的VC中启动时将其加载回来。我该如何做到这一点?

如何将数据从uiViewController发送到uipopover,以便将datepicker设置为相应的VC的初始日期。非常感谢。

启动故事板中设计的uipopover的VC代码:

- (IBAction)calendarbutton:(UIButton *)sender {

    UIView *anchor = sender;
    selectDatePopover *selectDatePopoverinstance =
    [self.storyboard instantiateViewControllerWithIdentifier:@"selectDatePopover"];
    _popover = [[UIPopoverController alloc]
           initWithContentViewController:selectDatePopoverinstance];
    [_popover presentPopoverFromRect:anchor.frame
                         inView:anchor.superview
       permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    selectDatePopoverinstance.delegate = self;
    _popover.delegate =self;
}

uipopover中的代码:

- (void)viewDidLoad
{
    NSLog(@"viewdidload");
    NSUserDefaults *datepicks = [NSUserDefaults standardUserDefaults];
    NSString *myLastDate = [datepicks objectForKey:@"myLastDate"];

    if (myLastDate == nil) {
        [self.mydatepicker setDate:[NSDate date] animated:NO];
    } else {
         NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
         [formatter setDateStyle : NSDateFormatterLongStyle];

         [self.mydatepicker setDate:[formatter dateFromString:myLastDate] animated:NO];
    }
    [super viewDidLoad];
    NSLog(@"insideview");
// Do any additional setup after loading the view.
}

2 个答案:

答案 0 :(得分:1)

创建UIPopoverController的子类,它具有属性“data”, 然后将您的数据传递给构造函数中的类。 这对你有用吗?

答案 1 :(得分:0)

我能够通过创建属性并在VC中设置它来解决这个问题。 :)我猜,它也可以通过给不同的uipopover实例提供不同的标签来解决。但我仍然需要测试它。 帮助我的一个惊人的教程是: http://www.colejoplin.com/2012/09/12/ios-tutorial-combining-delegation-storyboards-popovers-and-data/

希望能在某处帮助某人:)