4

好的,所以我从我的主视图和所有好东西中做了一个弹出窗口。但是当按下弹出窗口中的按钮时,我想让我的弹出窗口在我的主视图中调用一个动作。

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

“dostuff”函数改变了视图中的一些元素。例如,应该更改工具栏的颜色。我已经放了一个打印命令,打印命令就会执行。但由于某种原因,工具栏不会改变颜色。

  • 我已将 MainView 的标题导入到弹出窗口中。
  • 我在弹出窗口中为 MainView 做了一个@class thingy。
  • doStuff 在 MainView 的标头中声明。
  • IBOutlets 也被声明并连接。

有任何想法吗?

4

1 回答 1

1

令人失望的是,我们没有可用于检查弹出框显示在哪个视图(视图控制器)中的直接方法。我在基于选项卡的应用程序中做的事情是:

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];
    }

希望这可以帮助,

我知道这不是最好的方法,希望苹果考虑这个问题,或者如果有人设计了解决方法。

谢谢,

马杜普

于 2010-03-22T09:41:44.347 回答