Это старая ветка, но я нашел ее в Google. Я успешно извлек изображения из UIBarButtonItems, инициализированных с системными элементами, используя код ниже. Все программы-экстракторы не делали этого на iOS 6 или были слишком сложными для меня. Поскольку мне нужно было всего 5-6 изображений, я просто получил их вручную.
- (void)viewDidAppear:(BOOL)animated {
UIView *v1 = self.navigationController.navigationBar;
for (int i = 0; i < v1.subviews.count; i++)
{
UIView *v2 = [v1.subviews objectAtIndex:i];
NSLog(@"%i %@", i, [v2 class]);
if (i == 2)
{
for (int j = 0; j < v2.subviews.count; j++)
{
UIView *v3 = [v2.subviews objectAtIndex:j];
NSLog(@" %i %@", j, [v3 class]);
if (j == 1)
{
// In my test, this view was UIImageView containing button image
UIImageView *iv = [[UIImageView alloc] initWithImage:((UIImageView *)v3).image];
[self.view addSubview:iv];
}
}
}
}
}