2015-06-02 51 views
1

這是我的第一個問題,所以請耐心等待(我正在尋找天,但我找不到任何答案!TT)我也是IOS開發的新手,很抱歉,如果我得到條款錯誤,我需要在我的應用程序中獲得UITextField的值。我正在使用UIPageViewController和2個視圖控制器:在UIPageViewController中獲取UITextField的值

第一個視圖控制器是使用UIPageViewControllerDataSource的根視圖,這是我的UIPageViewController聲明的位置。 第二個視圖是頁面視圖,這個視圖裏面有2個UITextFields。 所以在我的應用程序中,我有兩個頁面都使用第二個視圖控制器。

我的第一個問題是,我沒能得到使用根視圖類UITextFields的價值,但後來我發現了一個辦法做到這一點在我的rootviewcontroller接口.M宣佈UIPageViewController,所以我想我以我自己的方式解決它。

但是,我在轉到下一頁之前通過單擊按鈕來獲取此值,無論如何,當我轉到下一頁時沒有單擊按鈕,我可以得到UITextField值? 接下來是,當我轉到下一頁並返回到第一頁時,當我單擊該按鈕時,它不再獲得UITextField值。

因此,通過在每個頁面的第一個UITextField上標識佔位符,我能夠獲得UITextField值。

我有viewControllerBeforeViewControllerviewControllerAfterViewController方法,但它們的行爲很奇怪。在我的應用程序中調用此方法時,我多次前後翻頁,有時不調用此方法中的一個。

此外,我用這個網站http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/作爲我的創建指南。

希望有人能幫助我......謝謝!

+1

您可以在全局範圍內存儲所需文本的值,我的意思是在單例類或AppDelegate中。你可以像這樣全局訪問'AppDelegate'實例 - 'MyApplicationDelegate * appDelegate =(MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];' –

+0

我會嘗試,但是,我的主要問題是識別頁面..由於viewControllerBeforeViewController和viewControllerAfterViewController被不準確地調用,我無法區分哪些是第一頁和第二頁。我想讓兩者都感覺不舒服,所以當頁面翻轉時,uitextfield中的數據可以被按鈕讀取,或者當頁面翻轉時。 – jane

回答

0

UIPageViewControllerviewControllers屬性。您可以訪問它以獲取UIViewController的數組。使用此功能,您將可以訪問SecondViewController

pageViewController.viewControllers[1]會給你第一個SecondViewController的實例。只要確保在SecondViewController中聲明全局textField,並且您可以訪問它以檢索輸入的文本。

此外,帕迪的答案也應該如此。爲兩個textField s提供兩個不同的密鑰,並分別訪問它們。

+0

這正是我所需要的!!然而,我有兩頁......但是當我嘗試NSLog在我的UIPageViewController視圖控制器數組,只有一個......你知道爲什麼嗎?你也可以給我一些提示,如何添加另一個視圖控制器在我的UIPageViewController,所以他們將有單獨的viewcontroller每一組uitextfield?非常感謝!! – jane

+0

可悲的是我還是不能upvote所以我只是接受你的答案:)非常感謝你! – jane

0

您可以使用NSUserDefaults來保存TextField的值。

let defaults = NSUserDefaults.standardUserDefaults() 
defaults.setObject("TextField value", forKey: "nameKey") 

,並獲得價值

let name = defaults.stringForKey("nameKey") 

一旦保存價值,可以在整個項目中使用它。

+0

我可以這樣做,謝謝你的回覆!但無論如何,我可以自動存儲uitextfield值,而無需點擊按鈕?而不是當頁面被轉動時? – jane

+0

手勢驅動過渡完成後,調用此代理方法: pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted: – Paddy

+0

如果頁面翻轉完成,它將返回YES。所以你可以存儲這個值。 – Paddy

0

好吧!我自己解決了這一切,並得到了上述人員的幫助!感謝您的建議傢伙!你對我的幫助非常大!我所做的只是爲網頁製作了兩個viewcontroller,所以我不需要我的UItextfield共享兩個輸入!謝謝!!!

相關問題