Iphone 关闭UIViewController并在另一个类中更改ui

Iphone 关闭UIViewController并在另一个类中更改ui,iphone,ios,xcode,cocoa,uiviewcontroller,Iphone,Ios,Xcode,Cocoa,Uiviewcontroller,在我的应用程序中,我有两类UIViewController。FirstViewController是一个具有此方法的视图,它将uitableview添加到控制器的视图中: -(IBAction)SetTabState:(id)sender{ if (sender == History) { [self.view addSubview:HistoryView]; } } 现在,在SecondViewController类中,我有两个选项可以返回。 返回

在我的应用程序中,我有两类
UIViewController
FirstViewController
是一个具有此方法的视图,它将uitableview添加到控制器的视图中:

 -(IBAction)SetTabState:(id)sender{
    if (sender == History) {
            [self.view  addSubview:HistoryView];
    }
}
现在,在
SecondViewController
类中,我有两个选项可以返回。 返回的第一个选项是简单地返回,这很好:

[self dismissModalViewControllerAnimated:YES];
第二个选项是从SeconedViewController返回并调出视图历史记录 所以我试着这样做:

[self dismissModalViewControllerAnimated:YES];
FirstViewController *Vc = [[FirstViewController alloc]init];
[Vc SetTabState:Vc.History];

事实上,从
UIViewController
类触发一个方法是我从未理解过的事情。

在解除模式之前,您需要传递信息。大概是这样的:

SecondViewController.m:
- (IBAction) secondButtonTouched:(UIButton)button {
  FirstViewController *fVC = (FirstViewController *)self.presentingViewController;
  [fVC SetTabState:History];
  [fVC dismissModalViewControllerAnimated:YES];
}
您需要获取对现有
FirstViewController
的引用,而不是创建一个新的引用


注意:您应该为SecondVC传递一个弱引用(或委托/协议),以获得对FirstVC的引用,而不是假定
presentingViewController
的类型为
FirstViewController
。我这样做是为了简化代码。

请详细说明您的问题。我想你想做这样的事。当您从第二个视图进入第一个视图时,您应该显示tableview。是的,但只有当我从第二个视图控制器返回此特定请求时,我仍然不确定您的要求,但我觉得委托和协议是您需要的。我不知道您在SetTabState函数中到底做了什么。但若我并没有错的话,那个么你们必须做简单的思考,当你们通过特定的事件进入第一个控制器时,然后把你们的tableview带到前面或者重新设置它。[self.view bringsubview tofront:self.tableView]类似于这样。这是一个简单的调用,为这个简单的操作定义一个协议,让它变得复杂,我认为我不正确。