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]类似于这样。这是一个简单的调用,为这个简单的操作定义一个协议,让它变得复杂,我认为我不正确。