2017-04-12 67 views
0

目前,我正在使用英語和阿拉伯語的本地化。 要從RTL更改爲LTR視圖,我使用了exit(0),這將停止應用程序,並且用戶必須再次打開它。對於該Apple在上傳到應用程序商店時拒絕我的應用程序。ios swift在更改語言時如何將RTL更改爲LTR視圖?

我指的是https://itunes.apple.com/us/app/talabat-for-ipad/id477430407?mt=8,它會在沒有退出應用程序的情況下查看視圖。

在此先感謝。

+0

改變視圖的觸發器是什麼?你怎麼能從你的應用程序內做到這一點? –

+0

是什麼問題?最好是在加載視圖之前檢查語言。或者,如果用戶更改,可能會顯示一個彈出窗口,指出重新啓動後會進行更改 –

+0

如果您可以在應用程序的初始加載時執行此操作,爲什麼不能在用戶更改時更新? –

回答

1

您可以通過外觀代理在您調用exit(0)的地方更改UIView semanticContentAttribute,並再次設置窗口的rootViewController。

func switchViewControllers(isArabic arabic : Bool){ 

     if arabic { 
      UIView.appearance().semanticContentAttribute = arabic ? .forceRightToLeft : .forceLeftToRight 
      let appDelegate = UIApplication.shared.delegate as? AppDelegate 
      let homeViewController = HomeViewController() 
      appDelegate?.window?.rootViewController = homeViewController 
     } 
} 

這適用於我。希望它幫助