0

iPad用のアプリを開発しています。VIEW1にいくつかのリストがあるtableViewでUIPopoverControllerを表示できます。

ユーザーがテーブルから行を選択したときに、VIEW1 から VIEW2 に移動したいと考えています。

言い換えると、

  1. VIEW1 には、button1 が含まれています。

  2. ユーザーがボタン1を押すと、ビュー1にポップオーバーが表示されます。

  3. ポップオーバーには、いくつかの行を持つテーブルがあります。(VIEW1)

  4. ユーザーが行を選択すると、VIEW2 が呼び出されます。つまり、VIEW1 から VIEW2 に移動します。

助けてくれてありがとう。

4

4 に答える 4

1

テーブルビューのデリゲート メソッド didSelectRowAtIndexPath では、次のようにメソッドを呼び出すことができます。

1. ポップオーバー コントローラーの初期化中に、次のようにターゲットとセレクターを定義します。 [theController setTarget:self andSelector:@selector(yourMethod:)];

2.and テーブルビューを含むビュー コントローラーでは、次のように setTarget メソッドを定義できます。

-(void)setTarget:(id)inTarget andSelector:(SEL)inSelector {
    mTarget = inTarget;
    m_Selector = inSelector;
}

ここで、mTarget は id タイプで、mSelector はセレクターです。

3.次に、次のように yourMethod を呼び出すことができます:

if ([m_Target respondsToSelector:m_Selector]) {
        [m_Target performSelector:m_Selector withObject:nil];
    }

テーブルビューが同じビューにある場合は、didSelectRowAtIndexPath で yourMethod を呼び出すことができます。

于 2012-08-06T09:24:26.663 に答える
0

私は答えを見つけました。UITableViewControllerをUIPopOverControllerに追加するだけで、VIEW1からVIEW2に移動できます。

あなたの努力に感謝します。以下はコードです。

        tableViewController = [[UITableViewController alloc]initWithStyle:UITableViewStylePlain];
        tableViewController.tableView = tblView;
        tableViewController.tableView.delegate = self;
        tableViewController.tableView.dataSource = self;
        UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:tableViewController];
        self.popoverController = popover;
        popoverController.delegate = self;

        [popoverController setPopoverContentSize:CGSizeMake(442.0f, 527.0f)];
        [popoverController presentPopoverFromRect:CGRectMake(bkBtn.frame.origin.x+bkBtn.frame.size.width/2, bkBtn.frame.origin.y, 442.0f, 527.0f) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

        [tableViewController.tableView reloadData];
于 2012-08-06T10:20:29.020 に答える
0
 - (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {
VIEW2 *view2=[[VIEW2 alloc]initWithName:@"VIEW2" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:view2 animated:YES];
[view2 release];
}
just try it.This will help you.
于 2012-08-06T12:26:49.230 に答える
0

テーブル ビュー コントローラー ファイルでは、didSelectRowAtIndexPathメソッドを使用して view2 を表示します。たとえば、次のようになります。

[self presentViewController:view2controller animated:YES completion:nil];
于 2012-08-06T09:19:52.757 に答える