【问题标题】:Brand New project View Controller has 2 "hidden" buttons on it全新的项目视图控制器上有 2 个“隐藏”按钮
【发布时间】:2013-11-10 19:20:40
【问题描述】:

我正在运行此代码,因为我想在它启动时更改我的ViewController 中所有按钮的某些内容。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    int i = 1;
    
    for (UIButton *btn in self.view.subviews)
    {
        NSLog(@"Count I - %d ", i);
        //NSLog(@"Count I - %d - %@", i, btn.titleLabel.text);
        
        i++;
    }
}

输出吧:

2013-11-11 08:15:13.315 testingSingle[7876:a0b] Count I - 1

2013-11-11 08:15:13.317 testingSingle[7876:a0b] Count I - 2

现在这对我来说似乎很奇怪,因为它是一个新项目,在故事板或代码中的 VC 上没有任何内容被拖到甚至更改 - 没有任何迹象表明存在 2 UIButtons。

如果是这种情况,我如何才能将此消息发送给return 0?我的应用因此而崩溃。

【问题讨论】:

  • 是什么让你认为所有的子视图都是 UIButtons?
  • 哦,我以为我要求那个 - 嗯好吧学到了一些新东西:-)

标签: ios objective-c for-loop uibutton


【解决方案1】:

将您的 NSLog 更改为

NSLog(@"%@", [btn class]);

给出输出

_UILayoutGuide _UILayoutGuide

这表明没有按钮,但有一些其他视图(可能需要自动布局)。

for (UIButton *btn in self.view.subviews)

枚举所有个子视图,循环变量btw无所谓 声明为UIButton *。 要只处理按钮,您必须测试每个对象的类:

for (UIView *subView in self.view.subviews) {
    if ([subView isKindOfClass:[UIButton class]]) {
        UIButton *btn = (UIButton *)subView;
        // Do something with btn ...
        i++;
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多