1

ビュー(MapView)のビュー(DetailView)でpopOverを開きます。それは正常に動作します。

しかし、私の詳細ビューにはボタン(フィードバック)がありますので、クリックしたボタンで別のビュー(フィードバックフォーム)をプッシュしたいと思います。

試してみましたが、何も起こりません。

ビューをポップオーバー内にプッシュできますか?

私のコードは次のとおりです。

// MapView.m

detailsView *popUp=[[detailsView alloc] initWithNibName:@"detailsView_ipad" bundle:nil];


        popView = [[UIPopoverController alloc]initWithContentViewController:popUp];

        popView.delegate =self;

        [popView setPopoverContentSize:CGSizeMake(600, 500)];

 [popView presentPopoverFromRect:control.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}  


//Detailview.m

-(IBAction)openFeedbackForm:(id)sender {

fbView = [[deatailsFeedback alloc]
                  initWithNibName:@"deatailsFeedback_ipad" bundle:nil];
 [self.navigationController pushViewController:fbView animated:YES];
}
4

2 に答える 2

1

これを実現するには、detailsView を元の detailsView へのルート コントローラーを持つナビゲーション コントローラーにする必要があります。

このように、navigationController をポップすると、detailsView からプッシュを実行でき、popOver ビューにのみ影響します。

    detailsView *popUpView=[[detailsView alloc] initWithNibName:@"detailsView_ipad" bundle:nil];

    UINavigationController *popUpNavController = [[UINavigationController alloc] initWithRootViewController:popUpView];    

    popView = [[UIPopoverController alloc]initWithContentViewController:popUpNavController];

    popView.delegate =self;

    [popView setPopoverContentSize:CGSizeMake(600, 500)];

    [popView presentPopoverFromRect:control.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}


//Detailview.m

-(IBAction)openFeedbackForm:(id)sender {

    fbView = [[deatailsFeedback alloc]
              initWithNibName:@"deatailsFeedback_ipad" bundle:nil];
    [self.navigationController pushViewController:fbView animated:YES];
}
于 2013-01-24T15:25:31.903 に答える
0

あなたのコードを正しく理解していれば、openFeedForm IBAction メソッドは Detailview.m にありますか? コードの最初の部分は、一番下の部分とは異なるクラスにあるということですか?

その場合、Detailview 自体は navigationController に含まれていないため、存在しないナビゲーション コントローラーには何もプッシュしません。

やりたいことは、MapView に新しいビューをその navigationController にプッシュさせることです。

補足: MapView で popUp のデリゲートを (self) として設定しているため、MapView で IBAction メソッドを定義する必要があります。

(これは、コードの理解に関する私の最初の声明が正しいことを前提としています)

于 2013-01-24T06:30:26.270 に答える