gpt4 book ai didi

objective-c - 在分离的...上呈现 View Controller - 有时

转载 作者:太空狗 更新时间:2023-10-30 03:53:58 24 4
gpt4 key购买 nike

像其他即将使用 iOS8 的人一样,我收到了警告:

Presenting view controllers on detached view controllers is discouraged <EditItineraryViewController: 0x7ca56e00>.

这是由以下代码引起的:

- (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];
}

这是一个 iPad 应用程序,在这种情况下,弹出窗口的呈现方式是使其小指针指向位于 TableView 中的 TableView 单元格上的“i”图标。

这在我的应用程序的其他三个地方有效,根本不会引起警告。但出于某种原因,通过此实现,它会引起警告。奇怪的是,这是我应用程序中的第一个地方,我使用这种方法从 tableview 单元格中呈现弹出框,而其他实例只是这段代码的副本!

有什么想法可以帮助我弄清楚层次结构在哪里被破坏了吗?它与表格 View 单元格的生成方式有关,然后这个弹出窗口显示在它上面,还是必须严格与弹出窗口本身有关?或者它可能与 tableview 有关。我什至不知道从哪里开始看。

非常感谢!

最佳答案

我通过从呈现 tableView(在我的例子中是 Collection View )的 View Controller 中呈现弹出窗口来解决这个问题。当您从单元格中呈现时会出现问题。我假设任何单元格都被认为是“分离的 View Controller ”,所以从它们中呈现会给你这个错误并且不会收到旋转事件,这反过来不会使用 popoverPresentationController:willRepositionPopoverToRect:inView:回调。

关于objective-c - 在分离的...上呈现 View Controller - 有时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com