2016-01-13 40 views
1

因此,我正在迅速構建一個簡單的使者。我在viewWillAppear上使用不同UI的視圖狀態枚舉,即.Offline,.Default。我有一個convoVCInboxVC如何將按鈕發件人轉移到另一個類

從我InboxVC,我轉變到convoVC,其顯示在用戶和其或者從收件箱選擇另一個用戶之間的消息(在這種情況下,我想爲conversationVC .DEFAULT狀態),或者當我從「編寫新消息」按鈕轉換時(在這種情況下,我希望「構成」狀態爲conversationVC),使用搜索欄從查詢中選擇。

我有給我的函數的發件人是否已被按下撰寫按鈕,使過渡這就要求從InboxVCconvoVC

發件人類型的UIBarButtonItem的SEGUE,或發送者無法設定上convoVC狀態類型爲myAppName.InboxVC的情況下,如果tableview單元格被按下來進行轉換。

對於在每個狀態下發生的事情的代碼是微不足道的,因爲缺少更好的單詞。

這是InboxVC我的動作功能無論從我的tableView的didSelectRowAtIndexPath method叫,或者從barButtonItem選擇:

func compose(sender: AnyObject) { 
    self.performSegueWithIdentifier("toConversation", sender: sender) 
} 

我試圖捕捉髮件人(構建功能內,距離ViewWillDisappear但不能同時進行)的變量在InboxVC內聲明並將其轉移到convoVC中的另一個變量,然後檢查其類型以設置convoVC中的狀態。

我的問題是,它總是出來爲零。我如何轉移發件人?請幫助我是新來的迅速。 謝謝! (標記爲obj-c,因爲翻譯並不難)

該變量在兩個VC中都被稱爲sender並被聲明爲AnyObject類型?

我試圖

self.sender = sender 
convoVC().sender = sender 

我還試圖

self.sender = sender 

,然後設置sender (in convoVC) = InboxVC().sender

回答

1
func compose(sender: AnyObject) { 
    self.performSegueWithIdentifier("toConversation", sender: sender) 
} 

在這裏,在compose(sender: AnyObject)發件人是您的按鈕對象並在self.performSegueWithIdentifier("toConversation", sender: sender)發件人是您的視圖控制器。

所以你必須撥打電話self.performSegueWithIdentifier("toConversation", sender: self)self

而且通過按鈕對象您可以在另一個類創建參考,並func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)方法應創建一個類的對象,併爲您分配按鈕發件人。

+0

不完全。在撰寫過程中,我的發件人將是我的視圖控制器或我的欄按鈕項,具體取決於用戶是否在視圖控制器桌面單元上點擊,或者用戶是否敲擊欄按鈕項目。所以我必須在我的調用performSegueWithIdentifier方法中保留sender:sender。除此之外,你是對的。我在想這個完全不同,謝謝! – NotMe

0

FUNC撰寫(發件人:AnyObject){ 自我。performSegueWithIdentifier( 「toConversation」,發送方:發送者) }

在 撰寫

這裏(發件人:AnyObject) 發件人是您的按鈕對象 和 self.performSegueWithIdentifier( 「toConversation」,發送方:發送者) 發送者是你的視圖控制器。

所以你很樂意致電
self.performSegueWithIdentifier(「toConversation」,sender:self)with self。

爲了傳遞按鈕對象,你可以在另一個類中創建一個引用,並在func prepareForSegue(segue:UIStoryboardSegue,sender:AnyObject!)方法中創建該類的對象併爲其指定按鈕發件人。

相關問題