当iOS中显示UIPopoverPresentationController时,所选选项卡索引图像将处于非活动状态

当iOS中显示UIPopoverPresentationController时,所选选项卡索引图像将处于非活动状态,ios,objective-c,uipopoverpresentationcontroller,Ios,Objective C,Uipopoverpresentationcontroller,我有一个像下面这样的设计 如您所见,当用户点击UITableViewCell垂直三点图像时,我使用的是UIPopoverPresentationController。下面是显示弹出式演示视图控制器的代码 - (void)showMoreOptionsRelatedToMediCard:(UITapGestureRecognizer *)tapRecognizer { selectedMedItemRowIntValue = (int)tapRecognizer.view.tag;

我有一个像下面这样的设计

如您所见,当用户点击UITableViewCell垂直三点图像时,我使用的是UIPopoverPresentationController。下面是显示弹出式演示视图控制器的代码

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

}