2011-09-13 3 views
0

に表示されない、のUITableViewで正常に動作しますが、popoverControllernavigationItemがnavigationbarが表示されるように失敗しているpopoverController

の内側に失敗したがteamAController.h

@interface teamAController : UIViewController <UITableViewDataSource, UITableViewDelegate> {   
    UITableView *tableView; 
    NSArray *theArray; 
}  
@property (nonatomic, retain) NSArray *theArray; 
@property (nonatomic, retain) IBOutlet UITableView *tableView; 

-(void) createArray; 
のUIViewController

-(IBAction) btnShowMovies:(id) sender { 

    if (self.popoverController == nil) { 

     teamAController *movies = 
     [[teamAController alloc] 
     initWithNibName:@"teamAController" 
     bundle:[NSBundle mainBundle]]; 

     UIPopoverController *popover = 
     [[UIPopoverController alloc] initWithContentViewController:movies]; 

     popover.delegate = self; 
     [movies release]; 

     self.popoverController = popover; 
     [popover release]; 
    } 

    CGRect popoverRect = [self.view convertRect:[btn frame] 
             fromView:[btn superview]]; 

    popoverRect.size.width = MIN(popoverRect.size.width, 100); 
    [self.popoverController 
    presentPopoverFromRect:popoverRect 
    inView:self.view 
    permittedArrowDirections:UIPopoverArrowDirectionDown 
    animated:YES]; 
} 

をポップオーバーpopoverControllerを開始

teamAController.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.navigationItem.title= @"FooBarExtreme";  
    self.contentSizeForViewInPopover = CGSizeMake(250.0, 300.0);   
    [self createArray]; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
} 

すべてはうまくいきますが、イメージなどの素敵なテーブルがあり、正しいサイズと配置のポップオーバーはタイトルバーがありません.....?

答えて

0

http://mobiforge.com/designing/story/using-popoverview-ipad-app-developmentのチュートリアルに従うことで解決策/問題が見つかりました。

私はこれをUIButtonsのuiNavigationBar要素を使ってuiPopoverControllerを作成する上で最も包括的なものとして見つけました。

問題は、ポップオーバー自体がそれを呼び出すビューに属していることです。コンテンツは、読み込んだxlib/viewから派生したものです。タイトルバーではありません。親ビュービューでそれを呼び出します。

このコードは、メインビューにあり、UIButton

// BookMarksViewController is the class that contains the code/xib for the popover's content 
// Of overarching importance is creating it as a UITableViewController 

if (self.popoverController == nil) { 
    BookMarksViewController *bookMarksViewController = 
    [[BookMarksViewController alloc]  
    initWithNibName:@"BookMarksViewController" 
    bundle:[NSBundle mainBundle]]; 

    // Here's the rub: because in effect this view is controlling the popover 
    // we have to assign nav bar stuff here. Sigh. 
    bookMarksViewController.navigationItem.title = @"Territories"; 
    UINavigationController *navController = 
    [[UINavigationController alloc] 
    initWithRootViewController:bookMarksViewController]; 

    bookMarksViewController.contentSizeForViewInPopover = CGSizeMake(320, 400); 

    UIPopoverController *popover = 
    [[UIPopoverController alloc] 
    initWithContentViewController:navController]; 

    popover.delegate = self; 
    [bookMarksViewController release]; 
    [navController release]; 

    self.popoverController = popover; 
    [popover release]; 
} 

CGRect sourceRect = [self.view convertRect:[btn frame] fromView:[btn superview]]; 

[self.popoverController presentPopoverFromRect:sourceRect 
inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 
から呼び出されます
関連する問題