我是Objective-C的新手并且有一些问题。我创建了一个应用程序,其中有一个按钮切换到应用程序中的第2个选项卡,但我希望它从数据库中获取特定数据,因此我编写了代码,其中我从第一个视图传递了一个数字,该数字是我需要第二个视图
@synthesize goTo;
-(IBAction)goToChapter:(id)sender{
self.goTo= (int)10 ;
self.tabBarController.selectedViewController
= [self.tabBarController.viewControllers objectAtIndex:1];
}
所以在第二节课我试过这个:
- (void)viewDidLoad {
[super viewDidLoad];
FirstViewController *fvc=[[FirstViewController alloc] init];
int inx = (int)fvc.goTo ;
[self getPageContent:inx];
}
但我得到的是goTo假设为0而不是10。 我做错了什么,如何处理?
提前致谢:)
Emad Hegab答案 0 :(得分:1)
试试这个:
- (void)viewDidLoad {
[super viewDidLoad];
FirstViewController *fvc = (FirstViewController *)[self.tabBarController.viewControllers objectAtIndex:0];
int inx = fvc.goTo;
[self getPageContent:inx];
}
这假设您的FirstViewController处于索引0。
您正在创建FirstViewController的新实例,而不是获取对现有实例的引用。
您也不需要进行(int)
演员表。
此外,viewDidLoad可能仅在您第一次转到第二个选项卡时运行。因此,当用户选中回到第一个VC并选择另一个章节时,viewDidLoad将不会执行。您可能希望改为使用viewDidAppear。