Проблемы с uipopover при нажатии и открытии камеры для ipad

у меня проблемы с всплывающим окном при нажатии и открытии камеры для ipad, я написал такой код

-(IBAction)business_takephotobtnClicked   // click the button show the popoverview

{ 

NSLog(@"business_takephotobtnClicked");
    appdelegate.takePhoto=2;

    popover = [[UIPopoverController alloc] 
               initWithContentViewController:imgclass];

    popover.popoverContentSize =  CGSizeMake(138,66);
    [popover presentPopoverFromRect:popbtn_business.bounds inView:popbtn_business 
    permittedArrowDirections:UIPopoverArrowDirectionUp + 
    UIPopoverArrowDirectionLeft 
    animated:YES]; 
}





-(IBAction) takePhoto:(id)sender // to open the camera

{




    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
    {

       self.contentSizeForViewInPopover=CGSizeMake(138,66);




        UIPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentModalViewController:self.UIPicker animated:YES];

    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Camera is not available" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
        [alert show];
        [alert release];


    }

}

прежде, чем нажать кнопку, всплывающее окно показывает введите описание изображения здесь

одновременно нажмите на фото (кнопка Neem foto). РАЗМЕР ПОПРОСМОТРА РАСШИРЯЕТСЯ АВТОМАТИЧЕСКИ, например taht введите описание изображения здесь

Но мне нужен всплывающий экран того же размера, когда я открываю камеру.

Заранее спасибо......


person iCrazyDev    schedule 25.07.2012    source источник
comment
проверьте эту ссылку: - stackoverflow.com/questions/3458722/   -  person Leena    schedule 27.07.2012


Ответы (1)


вместо использования XIB используйте для программного создания вида камеры и выполните следующие действия

-(IBAction)popbtn_Click:(id)sender
{
    UIViewController* popoverContent = [[UIViewController alloc] init];
    UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 230, 180)];
    popoverView.backgroundColor = [UIColor whiteColor];

    take_btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    [take_btn setTitle:@"Take" forState:UIControlStateNormal];
    take_btn.frame=CGRectMake(2,2, 250, 60);
    [take_btn addTarget:self action:@selector(take_btnclick:) forControlEvents:UIControlEventTouchUpInside];
    [popoverView addSubview:take_btn];
}

-(void)take_btnclick:(id)sender
{
    [popoverController dismissPopoverAnimated:YES];

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        UIPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentModalViewController:self.UIPicker animated:YES];

        [popoverController dismissPopoverAnimated:YES];
    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Camera is not available" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }

    if (popoverController != nil)
    {
        [popoverController dismissPopoverAnimated:YES];
    }
}
person Veera Raj    schedule 01.08.2012