2011-08-25 38 views
0

對不起,如果我的問題不符合標題,但我認爲它確實: 我有一個導航控制器和3個視圖的應用程序。這是一個連接到服務器並與朋友聊天的應用程序。 事情是,我的rootViewController,登錄屏幕,調用第二個視圖女巫是朋友列表。點擊列表中的朋友會將您帶到第三個視圖,即聊天屏幕本身。 我想在用戶登錄(rootview)時存儲變量中使用的用戶名,所以我可以在第三個視圖即聊天屏幕上使用它,所以當他發送消息時,可以使用他的名字它,並從服務器檢索信息時,我也可以使用他的名字作爲參數。 順便說一下,SQLite是保存消息和用戶的最佳方式嗎?我害怕核心數據=/不同的導航堆棧中的變量

回答

0

爲了讓事情鬆散耦合,我會考慮在實例化每個UIViewController子類時沿着userName。 (使單元測試也更容易)

例如

// LoginViewController -> user logs in 
FriendsViewController *friendsViewController = [[FriendsViewController alloc] initWithUserName:userName]; 
[self.navigationController pushViewController:friendsViewController]; 
[friendsViewController release]; friendsViewController = nil; 

// FriendsViewController -> user selects a friend 
ChatViewController *chatViewController = [[ChatViewController alloc] initWithUserName:userName]; 
[self.navigationController pushViewController:chatViewController]; 
[chatViewController release]; chatViewController = nil; 

不要害怕核心數據,那裏有很多優秀的書籍。

+0

謝謝,我剛剛發現如何使用應用程序委託來使用我設置的var。 在你寫的這個方法中,有沒有例如「initWithPassword」? – Erakk

+0

這通常被認爲是不好的做法,因爲你只是在創建一個全局變量。 –

+0

'initWithUserName'本來就是你必須編寫的自定義方法,因此你也可以使用'initWithPassword'方法。 –

0

核心數據並沒有那麼糟糕。 This是我用來開始使用Core Data的指南。一旦你圍繞着一切如何運作的頭腦,它真的不是那麼糟糕。

如果你想給你可能使用SQLite,但它的代碼很多。核心數據使用起來非常簡單。

+0

我將檢查該鏈接,非常感謝! – Erakk