iOS8之前,UIWindow中的座標計算以設備Potraite朝向計算,即使將設備橫置爲Landscape朝向,座標的計算方式依然不變。
所以,在設計自定義的轉場(Segue)的時候,須要根據設備朝向從新調整座標計算。而UIView的座標會根據設備朝向自動調整。
iOS8之後,UIWindow與UIView保持一致,再也不須要單獨進行處理,但這個變化會與之前的邏輯衝突。windows
UIPopoverController提供氣泡式彈出框視圖,在iPad上有很不錯的體驗。
在iOS8中,蘋果調整了- presentPopoverFromRect:inView:permittedArrowDirections:animated:
方法的邏輯。
所以,在自定義Segue的狀況下,使用這個方法,可能會出現view not in windows hierachy錯誤,使得本來能夠彈出的視圖沒法彈出。設計
在iOS8之前,沒有單獨的受權接口能夠調用,當第一次調用到locationManager中的座標獲取方法時,會彈出一個系統對話框提示用戶是否受權。
iOS8之後,再也不有自動提示。開發者須要首先調用CLLocationManager的類方法- authorizationStatus
來判斷受權狀態,
進而手動調用其實例方法- requestAlwaysAuthorization
或者- requestWhenInUseAuthorization
來手動提示用戶受權。
這裏還必需要在Info.plist裏面設置NSLocationUsageDescription或者NSLocationWhenInUseUsageDescription這兩個key中的其中一個來設置彈出框的提示信息。
不然沒法彈出提示框。以後能夠經過locationManager:didChangeAuthorizationStatus:
來監測用戶受權的狀況,分別作處理。code