Ios 全新的项目视图控制器有2个“;“隐藏的”;上面的按钮

Ios 全新的项目视图控制器有2个“;“隐藏的”;上面的按钮,ios,objective-c,for-loop,uibutton,Ios,Objective C,For Loop,Uibutton,我正在运行此代码,因为我想在启动时更改我的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) {

我正在运行此代码,因为我想在启动时更改我的
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测试单[7876:a0b]计数I-1

2013-11-11 08:15:13.317测试单[7876:a0b]计数I-2

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


如果是这种情况,我如何将此消息发送到
返回0
?我的应用程序因此崩溃。

将您的NSLog更改为

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

_UILayoutGuide _UILayoutGuide 枚举所有子视图,循环变量
btw
是否为 声明为
ui按钮*
。 要仅处理按钮,必须测试每个对象的类:

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

是什么让你认为所有的子视图都是UIButton?哦,我想我要求的是-嗯,好吧,学到了一些新东西:-)如果一个人希望有一个按钮数组,一般来说,
-[NSArray filteredarrayingpredicate::
和an也可以使用。
for (UIView *subView in self.view.subviews) {
    if ([subView isKindOfClass:[UIButton class]]) {
        UIButton *btn = (UIButton *)subView;
        // Do something with btn ...
        i++;
    }
}