启动时在视图控制器之间传递数据

时间:2012-07-31 12:27:52

标签: iphone objective-c ios cocoa-touch

我有一个侧面菜单应用程序。

我有2个ViewController' RearViewControllerFrontViewController

RearViewController我有一个tableView我希望应用程序启动FrontViewController后立即加载此表中的第一个元素。

我尝试过添加

frontViewController.category = [rearViewController.fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
AppDelegate中的

,但它只是一个零对象。 谢谢。

2 个答案:

答案 0 :(得分:0)

数据不会像这样从一个视图控制器发送到另一个...你必须推它...使用pushViewController 在RearViewController写...

[self.navigationController pushViewController:FirstViewController animated:YES];

答案 1 :(得分:0)

enter image description here

在这种情况下我使用协议。

@protocol CommonDataSource
- (TheType *)dataSource;
@end


@interface AppDelegate : NSObject <UIAppDelegate, CommonDataSource>
@end

@implementation AppDelegate
- (TheType *)dataSource
{
   ...
}
@end


@interface TheAViewController : UIViewController
@property (...) id<CommonDataSource> commonDataSource;
@end

@interface TheBViewController : UIViewController
@property (...) id<CommonDataSource> commonDataSource;
@end


- (IBAction)theActionA:(id)sender
{
   TheAViewController *aaa = ...;
   a.commonDataSource = (AppDelegate*)...;
}


- (IBAction)theActionB:(id)sender
{
   TheAViewController *aaa = ...;
   a.commonDataSource = (AppDelegate*)...;
}
祝你好运!