2017-08-14 63 views
-1

我知道這個問題之前已經被問及我已經檢查過答案但仍然有問題。我需要更新我的XCODE遊戲,它是用Objective-C編寫的,以便將它保存在AppStore中,並且我現在還沒有積極觸及OBC。我已經能夠解決除了UIPopoverController問題之外的所有其他問題。UIPopoverController'已棄用:iOS 9.0中第一次棄用

我在代碼中用「>」標記了警告。

我真的很感謝這裏的幫助。

我有以下代碼:你應該用UIPopoverPresentationController代替

#import "DetailViewController.h" 

@interface DetailViewController() 

>>@property (strong, nonatomic) UIPopoverController *masterPopoverController; 


- (void)configureView; 
@end 

@implementation DetailViewController 

@synthesize detailItem = _detailItem; 
@synthesize detailDescriptionLabel = _detailDescriptionLabel; 
>>@synthesize masterPopoverController = _masterPopoverController; 

#pragma mark - Managing the detail item 

- (void)setDetailItem:(id)newDetailItem 
{ 
if (_detailItem != newDetailItem) { 
    _detailItem = newDetailItem; 

    // Update the view. 
    [self configureView]; 
} 

>>if (self.masterPopoverController != nil) { 
>> [self.masterPopoverController dismissPopoverAnimated:YES]; 
>>}   
} 

- (void)configureView 
{ 
// Update the user interface for the detail item. 

if (self.detailItem) { 
    self.detailDescriptionLabel.text = [[self.detailItem valueForKey:@"timeStamp"] description]; 
} 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
[self configureView]; 
} 

- (void)viewDidUnload 
{ 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
self.detailDescriptionLabel = nil; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} else { 
    return YES; 
} 
} 

#pragma mark - Split view 

>>- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController 
{ 
barButtonItem.title = NSLocalizedString(@"Master", @"Master"); 
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES]; 
self.masterPopoverController = popoverController; 
} 

- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem 
{ 
// Called when the view is shown again in the split view, invalidating the button and popover controller. 
[self.navigationItem setLeftBarButtonItem:nil animated:YES]; 
>>self.masterPopoverController = nil; 
} 

@end 

回答

1

,因爲這是不推薦使用。在已棄用的UIPopoverController的文檔中明確指出。

例如:

// Present the view controller using the popover style. 
myPopoverViewController.modalPresentationStyle = UIModalPresentationPopover; 
[self presentViewController:myPopoverViewController animated: YES completion: nil]; 


// Get the popover presentation controller and configure it. 
UIPopoverPresentationController *presentationController = 
     [myPopoverViewController popoverPresentationController]; 
presentationController.permittedArrowDirections = 
     UIPopoverArrowDirectionLeft | UIPopoverArrowDirectionRight; 
presentationController.sourceView = myView; 
presentationController.sourceRect = sourceRect; 
相關問題