2012-01-13 30 views
0

プログラムでmodalviewを終了するには、完了ボタンをクリックする必要があります。私はUIButtonUIBarButtonItemよりも良く、UIControlEventsTouchupInsideを加えると良いと思います。ModalViewを終了ボタンでプログラムで終了する

しかし、UIButtonとはどのボタンタイプを使用すべきか混乱しています。あなたが最も可能性の高いカスタムタイプでUIButtonTypeRoundedRectまたはUIButtonTypeCustom

を使用したいと思うでしょう

UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoLight]; 

[button addTarget:self action:@selector(displayModalViewaction:) forControlEvents:UIControlEventTouchUpInside];  

    UIBarButtonItem * button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                      target:self 
                      action:@selector(dismissViewaction:)] autorelease]; 

答えて

1

、あなたは表示のために画像を追加することができます。
あなたはUIBarButtonItemUIBarItemで定義されている画像のプロパティ)から、これらの画像を「盗む」とカスタムボタンは、外を見るために

UIBarButtonItem * buttonForImage = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:nil                  action:nil] autorelease]; 

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

[button addTarget:self action:@selector(displayModalViewaction:) forControlEvents:UIControlEventTouchUpInside]; 

[button setImage:buttonForImage.image forState:UIControlStateNormal]; 

物事UIBarButtonSystemItemDoneボタンのように見える作ってみることができます。 UIButtonの画像を設定するときは、contentModeプロパティに応じてボタンのサイズに合わせて拡大/縮小されません。イメージがcontentModeプロパティのルールに従うようにする場合は、代わりにsetBackgroundImage: forState:を使用してください。

0

ボタンの種類は関係ありません。ボタンにアクションまたはセレクターを割り当てる必要があります。

UIBarButtonItem *bttItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(yourBttAction:)] autorelease]; 

アクション:

- (IBAction) yourBttAction:(id)sender 
{ 
    NSLog(@"Done Button clicked"); 

    //do something 
} 

ボタンがmodalViewController上にある場合は、usualy I、のために私が使用して、それを却下:

[self dismissModalViewControllerAnimated:(BOOL)]; 

または

このような 何か
//if you have a navigationController 
[self.navigationController dismissModalViewControllerAnimated:(BOOL)]; 

しかし、デリゲートを使ってそれを却下したいのであれば、これを見てくださいtutorial

関連する問題