Come altri che vengono a iOS 8, sto ottenendo l'avvertimento:Presentando vista controllori sulla casa ... - a volte
Presenting view controllers on detached view controllers is discouraged <EditItineraryViewController: 0x7ca56e00>.
Questo è causato dal codice seguente:
- (void)editActivityDetailsForIndexPath:(NSIndexPath *)indexPath {
NSPredicate *predicateForDisplay = [[NSPredicate alloc] init];
switch (indexPath.section) {
case kIncompleteActivitiesSection:
predicateForDisplay = _predIncomplete;
break;
case kCompleteActivitiesSection:
predicateForDisplay = _predComplete;
break;
default:
break;
}
NSString *theActivityName = [[NSString alloc] init];
theActivityName = [[[_activitiesArray filteredArrayUsingPredicate:predicateForDisplay] objectAtIndex:indexPath.row] activityName];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ActivityDetailViewController *activityDetailVC = [storyboard instantiateViewControllerWithIdentifier:@"ActivityDetailView"];
activityDetailVC.modalPresentationStyle = UIModalPresentationFormSheet;
activityDetailVC.delegate = self;
// send the activity to the view
activityDetailVC.theActivity = [[_activitiesArray filteredArrayUsingPredicate:predicateForDisplay] objectAtIndex:indexPath.row];
// configure the look of the view
_activityDetailsPopover = [[UIPopoverController alloc] initWithContentViewController:activityDetailVC];
_activityDetailsPopover.delegate = self;
ItineraryCell *cell = (ItineraryCell *)[self.itineraryTableView cellForRowAtIndexPath:indexPath];
activityDetailVC.contentView.backgroundColor = [UIColor whiteColor];
activityDetailVC.navigationBar.barTintColor = _colorSchemeLightColor;
activityDetailVC.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:_colorSchemeColor};
activityDetailVC.saveButton.tintColor = _colorSchemeColor;
activityDetailVC.cancelButton.tintColor = _colorSchemeColor;
activityDetailVC.labelB.textColor = _colorSchemeColor;
activityDetailVC.labelM.textColor = _colorSchemeColor;
activityDetailVC.activityTitle.textColor = _colorSchemeColor;
activityDetailVC.activityTitle.font = [UIFont boldSystemFontOfSize:17.0];
// present the view
[_activityDetailsPopover presentPopoverFromRect:cell.cellDetailsButton.frame inView:cell.cellDetailsButton.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
Questo è un'app per iPad e in questo caso il popover viene presentato in modo tale da avere il puntatore che punta su un'icona "i" che si trova su una cella tableview in una tableview.
Questo funziona in altri tre posti nella mia app senza causare l'avviso. Ma per qualche ragione, con questa implementazione, sta causando l'avvertimento. La cosa strana è che questo è stato il primo posto nella mia app che ho usato per presentare il popover da una cella tableview e le altre istanze sono solo copie di questo codice!
Qualche idea su cosa posso guardare per capire dove si trova la gerarchia? È legato al modo in cui la cella tableview viene generata e quindi questo popover viene presentato in cima ad esso o deve essere strettamente collegato al popover stesso? O potrebbe avere a che fare con la tableview. Non so nemmeno da dove cominciare a guardare.
Grazie mille!
Qualcuno può aiutarmi con questo? – Kent
Hai trovato la risposta? Ho lo stesso problema – silvaric