0

UIPopoverController を作成し、setReminder ボタン popoverView をクリックすると正常に動作するメイン ビュー コントローラに追加しました。保存ボタンをクリックしたときに popupview を閉じたいのですが、どうすればよいですか?
ここに画像の説明を入力

  **mainView.m**
-(void)btnSetReminderTapped:(id)sender
{
setReminderView =[[setReminder alloc]initWithNibName:@"setReminder" bundle:[NSBundle mainBundle]];

setReminderView.delegate = self;
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:setReminderView];
popover.tint = FPPopoverDefaultTint;

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    popover.contentSize = CGSizeMake(400,400);
}
else {
    popover.contentSize = CGSizeMake(320, 288);
}
popover.arrowDirection = FPPopoverArrowDirectionUp;

//sender is the UIButton view
[popover presentPopoverFromView:sender];
}

  ***setReminder.m***

- (IBAction) btnSaveTapped:(id) sender
{

}
4

1 に答える 1

0

デリゲートを使用して、アクションに関するメイン ビューに通知btnSaveし、そのデリゲートで却下します。

@protocol EventDelegate <NSObject>

- evenSaveButtonClicked;

@end

メインのViewControllerで次のように実装します

- (void) eventSaveButtonClicked{
    [popover dissmissPopoverAnimated:YES];
}

-(void)btnSetReminderTapped:(id)sender
{
setReminderView =[[setReminder alloc]initWithNibName:@"setReminder" bundle:[NSBundle mainBundle]];
setReminder.delegate = self;
setReminderView.delegate = self;
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:setReminderView];
popover.tint = FPPopoverDefaultTint;

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    popover.contentSize = CGSizeMake(400,400);
}
else {
    popover.contentSize = CGSizeMake(320, 288);
}
popover.arrowDirection = FPPopoverArrowDirectionUp;

//sender is the UIButton view
[popover presentPopoverFromView:sender];
}

SetReminder クラス内にデリゲートを作成する必要があります

@interface SetReminder

@property(nonatomic, unsafe_unretain) id<EventDelegate> delegate

@end

実装ファイル(.m)では、次のように合成できます

@implementation SetReminder
@synthesis delegate

// Your button save code
- (IBAction) btnSaveTapped:(id) sender
    {
         if([delegate respondToSelector:@selector(eventSaveButtonClicked)]){ 
             [delegate eventSaveButtonClicked];
         }
    }

@終わり

于 2013-02-11T06:52:28.333 に答える