Question

I have a UInavigationController stack. In the RootViewController i have button . When i click the button a new viewcontroller is pushed and UIDatePicker should be shown . the problem is when navigating to view controller the date picker is shown for 1 sec and then suddenly disappeared and the whole screen goes Black. Here is the code

//rootviewcontroller 
- (IBAction)dateAction:(id)sender 
{
    self.another = [[AnotherViewController   alloc]initWithButtonWithTag:self.dateButton.tag andDelegate:self];
    [self.navigationController pushViewController:self.another animated:YES];
    self.another.navigationItem.title = @"DateName";
}



//second viewcontroller

- (void)viewDidload 
{
    self.pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)];
    [self.pickerView addTarget:self action:@selector(datePickerDidChangeDate:)  forControlEvents:UIControlEventValueChanged];

    self.pickerView.datePickerMode = UIDatePickerModeDate;
    self.pickerView.hidden = NO;
    self.pickerView.date = [NSDate date];

    self.formatter = [[NSDateFormatter alloc] init];

    self.formatter.dateStyle = NSDateFormatterLongStyle;

    [self.view addSubview:self.pickerView];
}

A help would be appreciated

Was it helpful?

Solution

try this code…

first view controller

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSArray *temp=[NSArray arrayWithObjects:@"button1" ,@"button2" ,@"button3",nil];
    for (int i=0; i<=2; i++)
    {
        _likeBtn=[UIButton buttonWithType:UIButtonTypeCustom];
        [_likeBtn setFrame:CGRectMake(20+(i*80), 220, 102, 20 )];
        [_likeBtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [_likeBtn setTitle:[temp objectAtIndex:i] forState:UIControlStateNormal];
        [_likeBtn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
        [_likeBtn setTag:i];
        [self.view addSubview:_likeBtn];
    }

    // Do any additional setup after loading the view from its nib.
}
- (IBAction)action:(id)sender

{
    UIButton *button=(UIButton *)sender;
    NSLog(@"%d",button.tag);
    secViewController *obj = [[secViewController alloc]init];
    obj.tagValue=button.tag;
    [self.navigationController pushViewController:obj animated:YES];
    obj.navigationItem.title = @"DateName";
}

second view .h file

 @property(nonatomic,assign) NSInteger *tagValue;

.m file

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSInteger *tag=self.tagValue;

    if (tag==0)
    {
        //tableView
        NSLog(@"tableview");
    }
    else
    {
        //datepicker
        NSLog(@"picker");

          self.pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)];
          [self.pickerView addTarget:self action:@selector(datePickerDidChangeDate:)  forControlEvents:UIControlEventValueChanged];
                self.pickerView.datePickerMode = UIDatePickerModeDate;
            self.pickerView.hidden = NO;
           self.pickerView.date = [NSDate date];
          self.formatter = [[NSDateFormatter alloc] init];
            self.formatter.dateStyle = NSDateFormatterLongStyle;
            [self.view addSubview:self.pickerView];
    }

    // Do any additional setup after loading the view from its nib.
}
-(void)datePickerDidChangeDate:(id)sender
{
    NSLog(@"%@",self.pickerView.date);
}

let me know statisfied or not...

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top