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上,甚至没有任何内容被更改-没有任何迹象表明存在2UIButton
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++;
}
}