2014-10-20 33 views
0

我的应用程序包含一个带有两个选项卡的tabBarController。标签号0包含SearchViewController,标签号1包含MatchCenterViewController。在切换到该选项卡之前,我想要设置的值为MatchCenterViewController s didAddNewItem属性。我知道,如果我做了这个一个SEGUE,将它作为这样做:当切换tabBarController索引而不是继续切换时,将数据从一个ViewController传递到另一个

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"ShowMatchCenterSegue"]) { 
     MatchCenterViewController *controller = (MatchCenterViewController *) segue.destinationViewController; 

     self.didAddNewItem = 1; 
     controller.didAddNewItem = self.didAddNewItem; 
    } 
} 

但是我不想用SEGUE要做到这一点,我想将它设置的MatchCenterViewControllerdidAddNewItem之前调用[self.tabBarController setSelectedIndex:1];。是否有可能做到这一点?

回答

1

你应该能够拉视图控制器出[self.tabBarController viewControllers]

的伪代码有点让你尝试并做手脚:

UIViewController *toViewController = [self.tabBarController viewControllers][1]; 
if ([toViewController isKindOfClass:[MatchCenterViewController class]]) { // This is just for the sake of safety. Good practice to get into type checking before you cast. 
    MatchCenterViewController *matchViewController = (MatchCenterViewController *)toViewController; 
    matchViewController.didAddNewItem = true; // Really this should be a Bool! 
} 
[self.tabBarController setSelectedIndex:1]; 
0

最好使用协议和委托,这是将这些数据传递给另一个视图控制器的最简洁的方式。它还可以分离代码,以便稍后管理。例如,你建立一个没有UITabbarController的iPad版本。

Define a protocol in SearchViewController.h: 

//under the #import 
@protocol SearchViewControllerDelegate 

//define a property to send delegate messages to 
@property (nonatomic,strong) id <SearchViewControllerDelegate> delegate; 

//after @end 
@protocol SearchViewControllerDelegate <NSObject> 
- (void)searchViewControllerDidSearchWithResult:(NSArray *)result; 

Then when you are setting up the view controllers assign MatchViewController to be the SearchViewControllers delegate. 

//in SearchViewController.m send the delegate message 
[self.delegate searchViewControllerDidSearchWithResult:arr]; 

Then in MatchViewController adopt the protocol to get messages. 
相关问题