我想介紹一種模式視圖控制器,不會調暗它背後的內容。只需使用標準的presentViewController。只是將視圖控制器的子視圖添加到父視圖中會導致問題。是否可以在不調暗背景的情況下在iPad上呈現模態視圖控制器?
回答
看看UIModalPresentationStyle
也許吧?
typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
UIModalPresentationFullScreen = 0,
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2
UIModalPresentationPageSheet,
UIModalPresentationFormSheet,
UIModalPresentationCurrentContext,
#endif
};
您可以調用presentViewController:animated:completion:
之前指定您的視圖控制器上使用setModalPresentationStyle:
模式呈現的類型。
這是如何回答關於不調光屏幕其餘部分的問題? – rmaddy
我不相信任何這些風格都能完成我所追求的。 – kyleplattner
@kyleplattner從技術上講,使用「FullScreen」會這樣做,因爲整個屏幕都被覆蓋了,所以沒有任何東西顯得模糊。 :) – rmaddy
最好的辦法是增加一個視圖作爲子視圖而不是模態視圖控制器。我不知道你的具體用途,但從它的聲音來看,邏輯應該在同一個控制器中。
myControllerThatWasModal.view.layer.opacity = 0.0f;
myControllerThatWasModal.view.hidden = YES;
[self.view addSubview:myControllerThatWasModal.view];
[UIView animateWithDuration:1.0 animations:^{
myControllerThatWasModal.view.layer.opacity = 1.0f;
}];
這是從內存中寫入所以請原諒任何錯誤,也沒有,爲了這個工作,你必須在視圖控制器,它會覆蓋你的「莫代爾」視圖控制器的一個實例。
我認爲問題在於管理子視圖,而不是將視圖控制器推到導航控制器上。那麼使用presentViewController沒有辦法做到這一點? – kyleplattner
這是正確的,它是更多的工作管理子視圖,但它會給你所需的功能。沒有辦法讓模態視圖控制器做你想做的事情;有很強的背景知識。從用戶體驗的角度來看,背景很有意義,它可以直觀地向用戶顯示他們需要關注的位置,顯示在後臺的視圖控制器上不會接收到觸摸,並且通常看起來不那麼混亂。 –
試試這個:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// remove the dimming view if needed, when this view controller will appear as modal
id <UIViewControllerTransitionCoordinator> transitionCoordinator = self.transitionCoordinator;
if (transitionCoordinator.presentationStyle != UIModalPresentationNone) {
for (UIView *transitionContainerSubview in transitionCoordinator.containerView.subviews) {
if ([NSStringFromClass([transitionContainerSubview class]) isEqualToString:@"UIDimmingView"]) {
transitionContainerSubview.hidden = YES;
}
}
}
}
- 1. 模態呈現的視圖控制器的透明背景
- 2. 如何用透明背景呈現模態視圖控制器
- 3. iOS - 是否可以從模態化視圖控制器呈現模態視圖控制器?
- 4. 在iOS 4.3中爲iPad呈現模態視圖控制器?
- 5. 可以呈現視圖控制器也是一個呈現視圖控制器?
- 6. 呈現視圖控制器模態 - iPad的
- 7. willRotateToInterfaceOrientation未在模態呈現的視圖控制器中調用
- 8. 推/呈現模態視圖控制器
- 9. 模態地呈現視圖控制器
- 10. 在iOS中不工作呈現模態視圖控制器
- 11. 是否可以在沒有導航控制器的情況下推視圖控制器?
- 12. 模態視圖控制器在呈現2/3次後不再呈現
- 13. 調用從模態呈現視圖控制器的方法
- 14. 如何在不依賴控制器上下文的情況下將剃鬚刀視圖呈現給字符串?
- 15. 是否可以在不使用eval的情況下呈現文件的內容?
- 16. 如何解除模態視圖控制器,然後立即讓呈現視圖控制器呈現不同的模態視圖控制器?
- 17. 如何在iPhone上呈現模態視圖控制器而不使用「當前」視圖控制器?
- 18. 模態視圖控制器上的現有模態視圖控制器
- 19. 當前的模態視圖控制器 - 與呈現視圖控制器交互
- 20. 從標籤欄控制器以模態方式呈現視圖
- 21. 以模態方式呈現視圖控制器,就像MFMailComposer
- 22. iPad/iOS7:'頁面'模式視圖控制器在呈現'全屏'視圖控制器後出現奇怪行爲
- 23. 是否可以在不使用圖像的情況下在背景中繪製漸變效果?
- 24. 錯誤呈現在ipad的iOS居中視圖控制器6
- 25. 如何在不調暗目標C背景的情況下顯示UIAlertView?
- 26. 爲什麼呈現視圖控制器的模態視圖(由詳細視圖控制器呈現)是分割視圖控制器?
- 27. 在沒有導航控制器的情況下關閉多個模態視圖
- 28. Ipad,我可以在不使用視圖控制器的情況下檢測設備旋轉嗎?
- 29. 應用程序不呈現模態視圖控制器
- 30. 呈現模式視圖控制器
這似乎是一個潛在的-UX混亂,由於缺乏與一般模態對話框的一致性。 –
你爲什麼要這樣做?模態視圖控制器的目的是接管整個屏幕並讓用戶在回到應用程序的主流程之前處理任何你想要他們做的事情。這是通過覆蓋整個屏幕或調暗屏幕的未覆蓋部分(在iPad上)完成的。 – rdelmar
我認爲這是一個特殊情況值得特例。 – kyleplattner