当iOS中显示UIPopoverPresentationController时,所选选项卡索引图像将处于非活动状态
我有一个像下面这样的设计 如您所见,当用户点击UITableViewCell垂直三点图像时,我使用的是UIPopoverPresentationController。下面是显示弹出式演示视图控制器的代码当iOS中显示UIPopoverPresentationController时,所选选项卡索引图像将处于非活动状态,ios,objective-c,uipopoverpresentationcontroller,Ios,Objective C,Uipopoverpresentationcontroller,我有一个像下面这样的设计 如您所见,当用户点击UITableViewCell垂直三点图像时,我使用的是UIPopoverPresentationController。下面是显示弹出式演示视图控制器的代码 - (void)showMoreOptionsRelatedToMediCard:(UITapGestureRecognizer *)tapRecognizer { selectedMedItemRowIntValue = (int)tapRecognizer.view.tag;
- (void)showMoreOptionsRelatedToMediCard:(UITapGestureRecognizer *)tapRecognizer {
selectedMedItemRowIntValue = (int)tapRecognizer.view.tag;
MedItemPopOverViewController *medItemPopOverViewCont = viewControllerWithIdInStoryboard(medItemPopOverViewControllerId, MED_REMINDER_STORYBOARD);
medItemPopOverViewCont.modalPresentationStyle = UIModalPresentationPopover;
medItemPopOverViewCont.popoverPresentationController.delegate = self;
[self presentViewController:medItemPopOverViewCont animated:NO completion:nil];
UIPopoverPresentationController *popController = [medItemPopOverViewCont popoverPresentationController];
popController.permittedArrowDirections = UIPopoverArrowDirectionRight;
popController.delegate = self;
popController.sourceView = tapRecognizer.view;
popController.sourceRect = CGRectMake(30, 50, 10, 10);
}
问题1.
显示弹出窗口时,为什么药物选项卡索引图像更改为未选中
如您所见,所选选项卡索引标题高亮显示,但图像未高亮显示。正因为如此,我相信,这与视图控制器中的Alpha值无关。但无论如何,我给了1作为显示视图的alpha值
问题2.
当我点击弹出窗口以外的其他地方时,我会在Xcode的调试区域得到以下警告,甚至弹出窗口也会被关闭
[警告]正在进行
要求设置其不透明度的动画。这将导致效果出现
直到不透明度恢复为1为止
问题3.
正如您在我上传的图像中所看到的,我在弹出视图中使用了一个表视图。当用户点击该表中的任何单元格时,我调用以下代码来消除DidSelectRowatineXpath方法中的弹出窗口
这是否定现有观点的正确方式吗。因为,它实际上会忽略显示的视图,但结果与我在第一个问题中提到的相同,即选项卡索引图像未高亮显示
我相信这三个问题都有联系。这就是为什么我把它们放在一个问题中。试试下面的链接,它可能对你有用 关于问题1。在tabbar类中添加以下行
[[UITabBar appearance] setTintColor:[UIColor colorWithRed:redColor]];//Add your color here
问题2
- (void)showMoreOptionsRelatedToMediCard:(UITapGestureRecognizer *)tapRecognizer {
selectedMedItemRowIntValue = (int)tapRecognizer.view.tag;
MedItemPopOverViewController *medItemPopOverViewCont = viewControllerWithIdInStoryboard(medItemPopOverViewControllerId, MED_REMINDER_STORYBOARD);
medItemPopOverViewCont.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *popController = [medItemPopOverViewCont popoverPresentationController];
popController.sourceRect = CGRectMake(30, 50, 10, 10);
popController.sourceView = tapRecognizer.view;
popController.permittedArrowDirections = UIPopoverArrowDirectionRight;
popController.delegate = self;
[self presentViewController: medItemPopOverViewCont animated:YES completion:nil];
}
请尝试下面的链接,它可能对您有用 关于问题1。在tabbar类中添加以下行
[[UITabBar appearance] setTintColor:[UIColor colorWithRed:redColor]];//Add your color here
问题2
- (void)showMoreOptionsRelatedToMediCard:(UITapGestureRecognizer *)tapRecognizer {
selectedMedItemRowIntValue = (int)tapRecognizer.view.tag;
MedItemPopOverViewController *medItemPopOverViewCont = viewControllerWithIdInStoryboard(medItemPopOverViewControllerId, MED_REMINDER_STORYBOARD);
medItemPopOverViewCont.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *popController = [medItemPopOverViewCont popoverPresentationController];
popController.sourceRect = CGRectMake(30, 50, 10, 10);
popController.sourceView = tapRecognizer.view;
popController.permittedArrowDirections = UIPopoverArrowDirectionRight;
popController.delegate = self;
[self presentViewController: medItemPopOverViewCont animated:YES completion:nil];
}