0

私はを使用していますUIButton。クリックすると、の助けを借りて自分のNSMutableArray中に存在するコンテンツを表示したいと思います。つまり、セルに自分のコンテンツを表示するポップアップを表示したいと思います。UITableViewUIPopOverControllerUITableViewNSMutableArray

次のコード行を使用しています。

UITableViewController *table= [[UITableViewController alloc]init];

table.delegate = self;

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:table];
self.popoverController = popover;          
popoverController.delegate = self;


NSString *hDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *hFilePath = [hisDir stringByAppendingPathComponent:@"hhhh.txt"];

NSArray *array = [NSArray arrayWithContentsOfFile:hFilePath ];
NSMutableArray *kkkk = [[NSMutableArray alloc] init];
for (NSDictionary *dict in array) {
    [kkkk addObjectsFromArray:[dict allKeys]];    
}

table = [[UIImageView alloc] initWithFrame:[window bounds]];
// Set up the image view and add it to the view but make it hidden
[window addSubview:table];
table.hidden = YES;
[window makeKeyAndVisible];

UITableViewのプレスでをポップアップさせることができませんUIButton。誰かが私がそれを整理するのを手伝ってもらえますか?

4

3 に答える 3

1

UITableViewを表示する1つの方法UIPopOverControllerは、新しいUIViewControllerクラスを作成することです。そして、のinitWithContentViewController方法でそれを呼び出しUIPopOverControllerます。

1.新しいクラスUIViewControllerまたはUITableViewControllerクラスを作成します。そのインスタンスを作成します。

2.initWithContentViewControllerのメソッドでインスタンスを使用しますUIPopOverController

3.「ポップ」する場所から言及する

あなたのButton行動の例:

-(IBAction)yourButtonAction:(id)sender

{
   YourNewViewController*newVC=[[YourNewViewController alloc]init];

   UIPopoverController*somePopOver=[[UIPopoverController alloc]initWithContentViewController:catergoryVC]; //Tell which view controller should be shown
   [somePopOver setPopoverContentSize:CGSizeMake(200, 200)]; // set content size of popover
   [somePopOver presentPopoverFromRect:yourButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; //From where it should "pop"

}

使用するUIBarButtonItem代わりにそうから提示したいようですpresentPopoverFromRectpresentPopoverFromBarButtonItem

 [somePopOver presentPopoverFromBarButtonItem:yourBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
于 2012-06-26T10:35:14.100 に答える
1

ボタンクリックを押したときにポップオーバーを表示する場合は、最初にビューコントローラーにボタンを追加し、そのビューコントローラーを次のように表示します。アプリデリゲートでコードを記述します。

MyViewController *viewController = [[MyViewController alloc] init];
[self.window addSubView:viewController.view];

MyViewControllerでボタンを追加し、次のようにそのボタンdisplayPopupにターゲットを指定します。

-(void)displayPopup:(id)sender
{
    UITableViewController *tblViewPopover = [[UITableViewController alloc] init];
    tblViewPopover.tableView.delegate = self;
    tblViewPopover.tableView.dataSource = self;
    tblViewPopover.tableView.backgroundColor = [UIColor whiteColor];
    tblViewPopover.tableView.separatorStyle= UITableViewCellSeparatorStyleSingleLine;

    float theWidth = 280;
    tblViewPopover.contentSizeForViewInPopover = CGSizeMake(theWidth,200);

    if(m_popOvrController){
        [m_popOvrController dismissPopoverAnimated:NO];
        [m_popOvrController release];
        m_popOvrController=nil;
    }    
    m_popOvrController = [[UIPopoverController alloc] initWithContentViewController:tblViewPopover];
    [tblViewPopover release];

        [m_popOvrController presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

}

また、テーブルビューデリゲートメソッドを使用して、テーブルビューにデータを表示できます。

于 2012-06-26T10:52:25.207 に答える
0

UIPopoverViewControllerはUIViewControllerを使用して初期化され、ここではUIView(UITableView)を使用していると思います。

代わりにUITableViewControllerを使用してみてください。

また、コードを使用して作成したときに計画どおりに機能しない場合は、XIBを明示的に使用してみてください。

これは役立つはずです。

于 2012-06-26T10:32:16.510 に答える