从其他视图访问表视图的按钮

时间:2011-06-13 12:13:22

标签: objective-c xcode ipad uitableview object

如何从任何其他视图访问视图中存在的按钮。让我详细说明我有两个视图控制器A和B.在视图中我有一个按钮在表视图中说button1。我想访问从我的另一个视图中的表视图内的那个按钮。请帮助。我尝试创建一个A类的对象然后写[objA.tableview button1然后我设置图像]但它没有工作。请帮助。任何帮助将不胜感激。

谢谢, 克里斯蒂

3 个答案:

答案 0 :(得分:0)

您可以尝试为您的按钮添加标签(确保它是唯一的)。

假设你的按钮有标签45;你已经在桌面视图中做到了。

现在在另一种方法中,你想使用你的那个按钮: -

-(void)deletePostMethod
{
    UIButton *button=(UIButton *)[self.view viewWithTag:49];
    [button setBackgroundColor:[UIColor redColor]];
    NSLog(@"button=%@",button);
}

编辑答案: -

- (UITableViewCell *)tableView:(UITableView *)tablefirst cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // I  have added a button in my table view in first row
    if (indexPath.row==0) {
        UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
        [btn setFrame:CGRectMake(0, 0, 40, 30)];
        [btn addTarget:self action:@selector(deletePostMethod) forControlEvents:UIControlEventTouchUpInside];
        btn.tag=579;
        [cell.contentView addSubview:btn];
    }
        return cell;
}

在该按钮上单击方法

-(void)deletePostMethod
{
    UIButton *button=(UIButton *)[self.view viewWithTag:579];
    [button setBackgroundColor:[UIColor redColor]];
    NSLog(@"button=%@",button);
}

单击此按钮后,背景颜色设置为红色。

答案 1 :(得分:0)

使用viewControllers属性访问导航堆栈中所有UIViewController的列表。

@property(nonatomic, copy) NSArray *viewControllers

NSArray* allController = self.navigationController.viewControllers ;

for(UIViewController* myAController in  allController)
{
         if( [myAController isMemberOfClass])
         {
              //Here Now you have the A controller 
              MyViewAController*  myATempController =  (MyViewAController*)myAController;

             //Now you could access the property of your A Controller.
         }
}

答案 2 :(得分:0)

我会将您的按钮设为视图控制器的属性,以便您可以按名称访问它。

在您的界面文件中:

@interface MyViewController : UIViewController {

    UIButton* myButton;

}

@property (nonatomic, retain) UIButton* myButton;

@end

在您的实施文件中:

@implementation MyViewController

@synthesize myButton;

@end

然后您可以使用aViewController.myButton来获取按钮。