所以,
我有一个表单(基本上是一个UITableView),一旦我完成表单,我点击屏幕顶部的“完成”按钮。
点击后,我需要将数据添加到另一个tableView(在另一个tableViewController中)。该表也位于导航控制器内。
按下完成按钮后,我需要将presentModalViewController作为新的TableView(带有新数据)以及tableView顶部的导航控制器。
所以,总结一下:
单击完成按钮时,我粘贴了 - (IBAction)。
-(IBAction) doneWithData: (UIBarButtonItem*) sender{
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[indicator sizeToFit];
indicator.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleBottomMargin);
indicator.tag = 1;
[self.view addSubview:indicator];
[indicator setBackgroundColor:[UIColor clearColor]];
indicator.center = self.view.center;
indicator.hidden = FALSE;
[indicator startAnimating];
if (self.dogTableViewController == nil)
{
DogTableViewController *temp = [[DogTableViewController alloc] init];
self.dogTableViewController = temp;
[temp release];
}
if (self.dogNavigationController == nil)
{
DogNavigationController *temp = [[DogNavigationController alloc] init];
self.dogNavigationController = temp;
[temp release];
}
[self.dogTableViewController.dogArray addObject:@"Dobby"];
[self.dogTableViewController.tableView reloadData];
NSLog (@"%@", [self.dogTableViewController.dogArray objectAtIndex:0]);
//Prints out "Null" //
[self presentModalViewController:dogNavigationController animated:YES];
[indicator release];
}
当我完成所有操作并点击完成按钮
我得到一个没有TABLE的空导航屏幕。另外我还在dogNavigationController屏幕上有一些按钮。没有看到!!
我的目标是将屏幕转移到这个新屏幕(恰好是主屏幕,而不是rootController)。你认为我应该使用modalViewController执行此任务吗?你认为我应该用其他方式将数据传输到另一个屏幕吗?
P.S。我不想使用PushViewController。
答案 0 :(得分:2)
我认为你应该这样做
[self.navigationController popToRootViewControllerAnimated:YES];
相当。要获得根视图控制器,您可以这样做,
DogTableViewController * viewController = [self.navigationController.viewControllers objectAtIndex:0];
[viewController.dogArray addObject:aDog];
原始答案
您是否应该使用根视图控制器初始化导航控制器?
DogNavigationController *temp = [[DogNavigationController alloc] initWithRootViewController:self.dogTableViewController];