0

为什么在 iOS 7 [UIView subviews] 中总是返回 nil ?

我正在使用这段代码,但已经得到了nil

iOS 7 中的错误?

编辑:

TWTweetComposeViewController* tweetSheet = [[TWTweetComposeViewController alloc]  init];
[tweetSheet setInitialText: twitter_descrp];
[tweetSheet addURL:[NSURL URLWithString: twitter_link]];

NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString: twitter_img]];
UIImage* uiImage = [UIImage imageWithData:imageData];
[tweetSheet addImage:uiImage];

NSLog(@"subviews: %@", [tweetSheet.view firstSubviewOfClass:[UIButton class]] );

这里firstSubviewOfClass来自iOS7 Subviews Hierarchy

在 NSLog 中返回这个:

subviews: (
)
4

1 回答 1

1

iOS 7 层次结构发生了很大变化。例如,Apple 用UIButton表格视图和表格视图单元格替换了许多 s。

您确定层次结构中实际上有一个按钮吗?对于调试,您可以尝试调用

NSLog(@"%@", [tweetSheet.view recursiveDescription]); // (ignore the warning)

查看视图层次结构的外观。

但是,在 iOS 7 中,Apple 开始有意阻止对系统视图UIAlertView的访问(例如)。有时是因为安全,有时是因为自己的原因。这意味着您可能根本无法访问该按钮。

应该访问该按钮。

于 2013-10-01T10:11:19.470 回答