2012-04-20 30 views
0

我向UIPopoverController添加了一個按鈕,但它似乎沒有響應觸摸。我不知道我是否應該在UIPopoverController上設置一些屬性或者什麼。以下是呈現彈出視圖和按鈕的代碼。UIButton在uipopover中不響應touchupinside

- (void)topicImageButtonPressed 
{ 
    CGRect aFrame = CGRectMake(0.0, 0.0, 1000.0, 600.0); 
    UIViewController *aView = [[UIViewController alloc] init]; 
    aView.view.frame = aFrame; 
    UIImageView *iView = [[UIImageView alloc] init]; 
    [iView setContentMode:UIViewContentModeScaleAspectFit]; 
    [iView setImage:self.topicImageView1.image]; 
    aView.view = iView; 

    UIButton *nextButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [nextButton addTarget:self 
        action:@selector(quizButtonPressed:) 
    forControlEvents:UIControlEventTouchUpInside]; 
    [nextButton setTitle:@"Next" forState:UIControlStateNormal]; 

    nextButton.frame = CGRectMake(700.0, 550.0, 160.0, 40.0); 

    [aView.view addSubview:nextButton]; 

    //aView.view.backgroundColor = [UIColor colorWithPatternImage:self.topicImageView1.image]; 

    imagePopoverController = [[UIPopoverController alloc] 
         initWithContentViewController:aView]; 
    imagePopoverController.popoverContentSize = CGSizeMake(1000, 600); 

    imagePopoverController.passthroughViews = [NSArray arrayWithObject:nextButton]; 

    [imagePopoverController presentPopoverFromRect:CGRectMake(212, 10, 1000, 600) inView:self.view 
        permittedArrowDirections:0 animated:YES]; 
} 
+0

這個問題,你的按鈕越來越接近但沒有視圖可見? – 2012-04-20 13:22:59

+0

按鈕沒有得到觸摸事件。我添加了一條NSLog語句來查看它是否被觸及。 – Nungster 2012-04-20 23:43:46

回答

0
UIViewController *popoverContent = [[UIViewController alloc]init]; 
    UIView *popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)]; 

    datepiker= [[UIDatePicker alloc]init]; 
    [datepiker setFrame:CGRectMake(0, 0, 320, 216)]; 
    datepiker.datePickerMode=UIDatePickerModeDateAndTime; 
    datepiker.hidden=NO; 
    datepiker.minimumDate=[NSDate date]; 

    [self.view addSubview:datepiker]; 

    [datepiker release]; 
    // [datepiker addTarget:self action:@selector(changedDate:) forControlEvents:UIControlEventValueChanged]; 

    btn_add=[[UIButton alloc]initWithFrame:CGRectMake(115, 250, 100, 30)]; 
    [btn_add setTitle:@"Add" forState:UIControlStateNormal]; 
    [btn_add setFont:[UIFont fontWithName:@"Arial-BoldMT" size:20]]; 
    [btn_add setBackgroundColor:[UIColor redColor]]; 
    [btn_add addTarget:self action:@selector(AddDate:) forControlEvents:UIControlEventTouchUpInside]; 
    [popoverView addSubview:btn_add]; 

    btn_cancel=[[UIButton alloc]initWithFrame:CGRectMake(115, 300, 100, 30)]; 
    [btn_cancel setTitle:@"Cancel" forState:UIControlStateNormal]; 
    [btn_cancel setFont:[UIFont fontWithName:@"Arial-BoldMT" size:20]]; 
    [btn_cancel setBackgroundColor:[UIColor redColor]]; 
    [btn_cancel addTarget:self action:@selector(CancelDate:) forControlEvents:UIControlEventTouchUpInside]; 
    [popoverView addSubview:btn_cancel]; 

    [popoverView addSubview:datepiker]; 
    [popoverView addSubview:btn_add]; 
    popoverContent.view = popoverView; 
    popoverContent.contentSizeForViewInPopover = CGSizeMake(320,350); 


    self.popoverController = [[UIPopoverController alloc] 
            initWithContentViewController:popoverContent]; 
    [self.popoverController presentPopoverFromRect:CGRectMake(230,250, 320,220) 
               inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 


    [popoverView release]; 
    [popoverContent release]; 


-(void)AddDate:(id)sender 
{ 
} 
-(void)CancelDate:(id)sender 
{ 
[popoverController dismissPopoverAnimated:YES]; 

} 

試試這個..我的作品成功。

+0

,並根據您的需要...和財產和合成popover和datepiker做改變。並且還給了代表 – 2012-04-20 13:12:27

1

添加這使它工作。 iView.userInteractionEnabled = YES;

+0

嗨,很高興看到你在你自己身上找到它。我正在努力......可能會得到「自我學習者」徽章。 :) – 2012-04-21 05:49:21

相關問題