我正在使用UISplitViewController,並且在我的詳細視圖中,我嘗試使用willTransitionToTraitCollection:withTransitionCoordinator:
更改垂直尺寸類更改爲Compact時情侶視圖的可見性。當UISplitViewController preferredDisplayMode覆蓋時,首先不會調用willTransitionToTraitCollection
僅在iPhone(不是iPhone加或iPad)如果我改變preferredDisplayMode
到UISplitViewControllerDisplayModePrimaryOverlay
,willTransitionToTraitCollection:withTransitionCoordinator:
不叫設備第一次旋轉,但willTransitionToSize:withTransitionCoordinator:
是。如果我將preferredDisplayMode
設置爲其他任何內容,它都可以正常工作。如果您在選擇主列表中的項目之前旋轉設備,則它工作得很好。這只是從肖像到風景的第一次旋轉。
的AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
// ******** Add this ********
[splitViewController setPreferredDisplayMode:UISplitViewControllerDisplayModePrimaryOverlay];
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
splitViewController.delegate = self;
return YES;
}
在DetailViewController
,添加viewWillTransitionToTraitCollection
和viewWillTransitionToSize
實現和設置斷點:
- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
}
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
你會
這是使用主從模板輕鬆地複製看到總是調用willTransitionToSize:
,但willTransitionToTraitCollection:
未被調用用於第一個tra nsition。
有誰知道這是爲什麼?我覺得這是一個錯誤,但我想看看有沒有人給我一個解釋,然後再向蘋果的bug記者黑洞發送一個錯誤報告。
事實並非如此。 iPhone在橫向上只有寬度和高度緊湊,但寬度和高度均爲縱向,所以在每次旋轉設備時都應調用willTransitionToTraitCollection。此外,如果是這種情況,這將永遠不會被稱爲(如在iPad上),但是在第一次設備旋轉後,每次設備輪換時都會調用它,而這隻發生在我最初描述的情況中。 –
@JordanBondo你可以看看我更新的答案 – malhal