2010-03-17 39 views
4

好的,所以我從主視圖和所有好東西中做出了一個popover。但是,當彈出窗口中的按鈕被按下時,我想在我的主視圖中使用彈出窗口調用一個動作。popover的調用函數

MainView *mainView = [[MainView alloc] initWithNibName:@"MainView" bundle:nil]; [mainView doStuff];

的 「dostuff」 功能改變視圖內的一些元件。例如,工具欄的顏色應該改變。我輸入了一個打印命令並執行打印命令。但出於某種原因,工具欄不會更改顏色。

  • 我已將MainView的標頭導入到彈出窗口中。
  • 我在我的popover中爲MainView做了一個@class thingy。
  • doStuff在MainView的標題中聲明。
  • IBOutlets也被聲明並連接。

任何想法?

+0

你有沒有'-addSubview:'了'mainView'? – kennytm 2010-03-17 21:23:30

+0

不,它不認爲我做過。讓我檢查... – user288225 2010-03-17 21:24:31

+0

它是「[self.view addSubview:mainView]」?因爲當我把它放在調用dostuff的IBAction中時,應用程序崩潰了。 – user288225 2010-03-17 21:26:33

回答

1

那麼令人失望的是,我們沒有可用於檢查顯示彈出窗口的視圖(視圖控制器)的直接方法。我在tabbased應用程序正在做的事情是:

New_iPadAppDelegate *appDel = (New_iPadAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSArray *viewConts = [(UINavigationController *)[[appDel tabBarController] selectedViewController] viewControllers]; 
    MainViewController *viewController = (MainViewController *)[viewConts lastObject]; 
    if([[viewController popoverController] isPopoverVisible]){ 
     [viewController doStuff]; 
    } 

希望這有助於

我知道這是不是最好的辦法,希望蘋果公司認爲,對這個問題,或者如果有人已經設計出一個變通。

感謝,

Madhup

+0

似乎是一個解決方法:) – Jann 2010-05-04 17:48:59

+0

@Jann我不知道你在想什麼,但它的方式蘋果也確實看到他們的splitview控制器的引用代碼http:// developer.apple.com/iphone/library/documentation/General/Conceptual/iPadProgrammingGuide/UserInterface/UserInterface.html#//apple_ref/doc/uid/TP40009370-CH3-SW2 – 2010-05-04 18:15:47