2017-08-19 21 views
0

我有一個不是非常直觀的應用程序。我想截取令人困惑的屏幕截圖,然後使用MSpaint編寫指令和塗鴉。當用戶第一次在應用程序中打開視圖時,我想要顯示一系列已更改的屏幕截圖以及「確定」按鈕。按確定將關閉屏幕截圖,並不會再顯示。有沒有一種有效的方法來做到這一點?我是Swift和Xcode的新手。任何幫助,將不勝感激在Xcode中製作和展示應用程序教程視圖

回答

0

您需要使用NSUserDefaults來保存應用程序的狀態(教程顯示與否) - NSUserDefaults保存應用程序運行到設備存儲之間的數據。

然後,您需要更改AppDelegate以根據您保存的值更改初始視圖控制器 - 這樣,如果教程已顯示,它將不會再顯示。

假設你有變種稱爲toturialShown 它設置爲false,每次運行檢查它的價值,以確定是否教程需要顯示 當用戶點擊解僱教程按鈕使用NSUserDefaults的保存這個新的狀態

商店

UserDefaults.standard.set(toturialShown, forKey: "toturialShownKey") 

檢索

UserDefaults.standard.bool(forKey: "toturialShownKey") 

[R EMOVE - 如果你想從存儲

UserDefaults.standard.removeObject(forKey: "toturialShownKey") 

在AppDelegate中在applicationDidFinishWithOptions功能 (請注意,我沒有測試的代碼)

var vc = "" 
    If toturialShown { 
      vc = "regularVC" 
    } else { 
    vc = "toturialVC" 
} 
let initialViewController = mainStoryboard.instantiateViewController(withIdentifier: vc) 
    let initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginSignupVC") 

    self.window?.rootViewController = initialViewController 
    self.window?.makeKeyAndVisible() 

注1完全刪除它:你需要添加標識注意2:如果您將初始VC(在故事板上)設置爲常規VC,那麼您可以更改上面的代碼以僅通過編程方式設置初始VC,前提是該教程未顯示,結果爲微微多一點 優雅的代碼

+0

這段代碼將首次打開應用程序時立即啓動教程?我想只在展示某些視圖控制器時啓動教程。 – Sente

+0

這將在2個VC之間切換 - 如果教程顯示,將顯示常規VC,如果這是第一次應用程序運行它會顯示教程VC –

+0

當我解僱教程時,我必須繼續到正常的VC? – Sente

相關問題