2016-07-24 34 views
0

首先,我不是Objective-c開發人員,但是我有4年的C和C++經驗。代碼在Xcode 7,iOS9

我想爲(iPad)應用陣營做一些演示程序。對於這些程序之一,我想在兩個UIViewControllers之間傳遞數據。

我嘗試過各種例子,下面的例子。 Passing Data between View Controllers

的代碼是寫在舊版本的Xcode的,所以我把調整通過編譯器來得到它的一個位。現在我面臨以下問題:

  • 看來prepareForSegue在我打開新視圖時沒有被調用? (或者我做錯了什麼?)我嘗試了各種方法。

  • 在同一篇文章中,有一種方法可以將委託傳遞給新類並返回到調用類。當我運行這一切都不錯,但有最後一部分:

ViewControllerA.m實現從我們的協議下面的方法

(void)addItemViewController:(ViewControllerB *)controller didFinishEnteringItem:(NSString *)item 
{ 
    NSLog(@"This was returned from ViewControllerB %@",item); 
} 

網是否執行......我不知道什麼是錯的。我完全按照這個例子。我可以看到第二個視圖的打開和關閉,只有委託代碼不會運行。我需要在Xcode 7中以不同的方式做到這一點嗎?

P.S.我知道這是一個基本的問題,但我無法在任何地方找到答案或好的Xcode 7指南。

+0

您好,歡迎光臨!將數據傳遞給應用程序雖然很重要,但並不是真正的「基本」功能。它涉及到應用程序體系結構,數據管理器和yes委託,它們不是初學者級別的概念。你能解釋一下在教程中如何實現segue嗎?你是如何驗證'prepareForSegue:sender:'沒有被調用的? – markedwardmurray

+0

你可以在你調用addItemViewController:didFinishEnteringItem時包含代碼嗎? – michaelrccurtis

回答

0

下面我們協議方法..沒有淨執行...

你確定你分配你的第一個視圖控制器的參考目標視圖控制器的委託財產一樣,

secondViewController .delegate = self;

您可以在創建第二個視圖控制器的位置執行此操作,例如prepareForSegue方法。如果你忘記了這個,你的委託方法根本不起作用,因爲你的第二個視圖控制器不知道誰是它的委託。

+0

我創建我的secondviewcontroller:[self] preformSegueWithIdentifier:@「AddContact」sender:self];我提出它會自動控制prepareForSeque方法?!你說什麼聽起來很合乎邏輯,但是當我使用preformSequeWithIdentifier時不行? – Tim