2010-03-17 41 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