2016-11-28 49 views
0

我有两个类的类甲& B,在A类我有MapView类和一个按钮上点击该按钮i要加载类B的的tableView在地图上和我还需要在类A中设置B类TableView的框架A 所有内容都是在不使用故事板的情况下编写的。请提前帮助我。如何加载在第一类视图所述第二类的tableView数据

在类的viewDidLoad一个

-(void)viewDidload{ 
    [mapView addSubview:classBViewController.tableView]; 
    classBViewController.tableView.hidden=YES; 
} 

-(IBAction)buttonClick{ 
    classBViewController.tableView.hidden=NO; 
} 
+0

你为什么不干脆引导到B级的视图按钮上点击?通过使用Segue或PushViewController? –

+0

它非常老的项目,所以我们没有使用任何故事板每一件事都以编程方式完成 – vardhan

回答

0

您可以通过委托或NSNotification做到这一点。

这里,代表正在better.you可以通过以下更改使用委托。

在课堂A.H,做以下操作: -

@protocol ClassADelegate <NSObject> 

- (void)classAButtonClickEvent; 
@end 

,并委托对象ClassADelegate A类 @属性(非原子,强)ID *代表;

在课堂上午

- (IBAction)buttonClick{ 
if ([delegate respondsToSelector:@selector(classAButtonClickEvent)]) { 
      [delegate classAButtonClickEvent]; 

} 

而在B类符合的ClassADelegate和实施classAButtonClickEvent()protocol.in你可以在你的classB.for前的tableview中进行的更改方法的方法

- (void)classAButtonClickEvent { 
    classBViewController.tableView.hidden=NO; 
} 

希望这有助于!

0

我不认为Tanvi的答案就是你要找的。在这种情况下创建一个委托是没有意义的,因为你已经知道按钮被点击的时间(IBAction,buttonClick,当按钮被点击时应该触发,因为你已经正确设置了它)。

而是隐藏和取消隐藏在的tableview,你应该推B级到一个UINavigationController。您也不需要使用此解决方案将类B中的tableView添加为viewDidLoad上mapView的子视图。

下面是我在说什么的例子:

// If you don't already have a navigation controller 
-(IBAction)buttonClick { 
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self]; 
    ClassB *classBViewController = [[ClassB alloc] init]; 
    [nav pushViewController:classBViewController animated:YES]; 
}  

// If you already have a navigation controller 
-(IBAction)buttonClick { 
    ClassB *classBViewController = [[ClassB alloc] init]; 
    [self.navigationController pushViewController:classBViewController animated:YES]; 
} 
相关问题