Iphone iOS:基于视图的工具栏按钮的多个选择器

Iphone iOS:基于视图的工具栏按钮的多个选择器,iphone,objective-c,ios5,uinavigationcontroller,Iphone,Objective C,Ios5,Uinavigationcontroller,我有一个视图,就像日历一样,有一个日视图、列表视图和月视图。它们位于工具栏中的分段控件中。更改分段控件时,将替换中间视图,并保留导航栏和工具栏。我还有一个按钮叫“今天”。当按下此按钮时,我希望它触发当前查看的类中的选择器。IE:如果加载了dayview,它将运行dayview控制器中的选择器。是否有一种方法可以根据当前显示的视图拥有多个选择器 我的结构是这样的 根视图控制器 已创建工具栏和导航栏 如果在工具栏中选择了Day,则DayViewController视图将加载到中间位置 如果在工具栏

我有一个视图,就像日历一样,有一个日视图、列表视图和月视图。它们位于工具栏中的分段控件中。更改分段控件时,将替换中间视图,并保留导航栏和工具栏。我还有一个按钮叫“今天”。当按下此按钮时,我希望它触发当前查看的类中的选择器。IE:如果加载了dayview,它将运行dayview控制器中的选择器。是否有一种方法可以根据当前显示的视图拥有多个选择器

我的结构是这样的

根视图控制器
  • 已创建工具栏和导航栏
  • 如果在工具栏中选择了Day,则DayViewController视图将加载到中间位置
  • 如果在工具栏中选择了“列表”,则ListViewController视图将加载到中间位置
DayViewController
  • (选择器)如果今天不是视图中的当前日期,则在日视图中滚动到今天
ListViewController
  • (选择器)滚动到当前部分,并显示今天的日期

让您的按钮指向一个通用方法,如
-(void)Today按钮标记
,然后决定要执行的操作:

- (void)todayButtonTapped;
{
   if (<check if day is presented>) {
       [self.dayViewController ....
   } else if (<check if week is presented>) {
       [self.weekViewController ...
   } else {
       [self.monthViewController ...
   }
}

好的,那么让这个方法在我的RootViewController中,并根据视图调用类中相应的方法?我假设工具栏添加在RootViewController中,以便能够响应,RootViewController还应该知道加载了哪个控制器,并且能够适当地转发消息。您的结构似乎有点奇怪tabbarcontroller是否不适合您的需要?我的视图中没有加载
.loaded
。您必须编写某种逻辑才能知道加载了哪个视图。这是问题的一部分。你能把你的帖子扩展到这个吗?
[self.currentController todayTapped:sender];