2017-09-04 68 views
1

呈現我有類似下面選定的選項卡索引圖像的行爲爲無效時UIPopoverPresentationController iOS中

enter image description here

設計正如你所看到的,我使用的是UIPopoverPresentationController當用戶水龍頭UITableViewCell垂直三點圖像。以下是我的演示視圖控制器彈出窗口的代碼。

- (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警告,甚至在彈出駁回。

[警告] < _UIPopoverBackgroundVisualEffectView 0x117931ed0>正在 要求動畫其不透明度。這將導致效果顯現 破碎,直到不透明度返回1

問題3:

你可以說我上傳的圖片中看到,我使用了一個表視圖在我的視線內彈出。當該表中的任意單元格用戶點擊,我打電話下面的代碼在解僱內部didSelectRowAtIndexPath方法方法

[self dismissViewControllerAnimated:NO completion:nil]; 

彈出那是一個解僱提出觀點的正確途徑。因爲,它實際上忽視了所呈現的視圖,但結果與我在第一個問題中提到的結果相同,即標籤索引圖像未突出顯示。

我相信所有這三個問題都有聯繫。這就是爲什麼我把它們放在一個SO問題中。

回答

0

請嘗試以下鏈接它可能會對你有用https://www.invasivecode.com/weblog/uipopoverpresentationcontroller-uisearchcontroller

對於問題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]; 

} 
相關問題