2013-10-18 131 views
0

我試圖保存或加載一些數據,當我的應用程序正在終止。在我的ViewController.m中我做了2個函數,一個用於保存,一個用於加載。無法從AppDelegate訪問ViewController

在我AppDelegate.m我試圖訪問我的ViewController,但它似乎並沒有工作..

我試了幾個,我發現這裏的堆棧溢出不同的方式,但沒有按委託」不認識它作爲一個ViewController什麼的:

[self.ViewController myFunction]; 
[self.rootViewController myFunction]; 
[self.window.ViewController myFunction]; 

他們都不工作。我究竟做錯了什麼?我使用錯誤的名稱爲ViewController?

我正在使用故事板的方式..訪問方法是不同的嗎?

+0

你在哪裏以及如何聲明你的財產導致你的viewController? – KIDdAe

回答

0

首先你需要做的你self.viewController諸如此類

self.ViewController = [[ActualNameOfViewController alloc] init]; 

然後調用方法對象的初始化諸如此類

[self.ViewController myFunction]; 

可能這是有益的:)

+0

我認爲你是對的..但我應該在哪裏發表第一個陳述?我只有一個ViewController,這也是實際的名字嗎?感謝您的回答。我會趕上它,一旦我得到它的工作:) –

+0

@RomanStrijbos在'窗口'創建後'didFinishLaunchingWithOptions'..和'ActualNameOfViewController'它只是名稱理解你:) – iPatel

+1

謝謝,這沒有工作:) –

0

首先你需要確保ViewController的輸入比執行alloc和init

////#import "ViewController.h" 
ViewController *MyVc = [[ViewController alloc]init]; 
[MyVc myFunction]; 
0

導入您UIViewControllerAppDelegate.m類:

#import SampleViewController.h 

之後創建的UIViewController一個實例:

self.sampleViewController = [[SampleViewController alloc] 
            initWithNibName:@"SampleViewController" 
              bundle:nil]; 
[self.sampleViewController myFunction]; 

SampleViewController是針對UIViewController廈門國際銀行的名字。

+0

謝謝!我在哪裏把alloc/init?我執行後? –

+0

是的,做一件事情把alloc/init放在 - (void)applicationDidFinishLaunching:(NSNotification *)之後,你可以在任何地方使用該實例來調用視圖控制器的函數 –