简体   繁体   English

使用Objective-C在Xcode 6上未显示图像

[英]Images not showing on Xcode 6 using Objective-C

When I try to run the program compiles and I don't receive any errors. 当我尝试运行该程序时,会编译并且没有收到任何错误。 Everything works as it should except that the image is not showing on the View Controller. 一切正常,除了图像未显示在View Controller上之外。 Can't figure where why the image is not showing. 无法弄清楚图像为什么不显示在哪里。 I appreciate any inputs. 我感谢任何投入。 Here is my code: 这是我的代码:

ViewController.m ViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"ShowItemDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        ItemDetailViewController *destViewController = segue.destinationViewController;
        destViewController.itemDesc = [listItems objectAtIndex:indexPath.row];
        destViewController.itemName = [listTimes objectAtIndex:indexPath.row];
        destViewController.pictureImageView = [listImages objectAtIndex:indexPath.row];
    }

ItemDetailViewController.h ItemDetailViewController.h

#import <UIKit/UIKit.h>

@interface ItemDetailViewController : UIViewController

@property (nonatomic, strong) IBOutlet UILabel *itemLabel;
@property (nonatomic, strong) IBOutlet UILabel *itemTitle;
@property (nonatomic, strong) NSString *itemName;
@property (nonatomic, strong) NSString *itemDesc;
@property (nonatomic, strong) IBOutlet UIImageView* pictureImageView;
@property (nonatomic, strong) UIImage *picImageView;


@end

ItemViewController.m ItemViewController.m

#import "ItemDetailViewController.h"

@interface ItemDetailViewController ()

@end

@implementation ItemDetailViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.itemLabel.text = self.itemName;
    self.itemTitle.text = self.itemDesc;
    self.pictureImageView.image = self.picImageView;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

At the time of viewDidLoad , chances are that self.picImageView is empty. viewDidLoadself.picImageView为空。 Please check that. 请检查一下。

Then, in order to set the picture, write a function like: 然后,为了设置图片,编写如下函数:

-(void) setPicImageView: (UIImage*) picImage{
    self.picImageView = picImage;
    self.pictureImageView.image = picImage;
}

This should solve your problem. 这应该可以解决您的问题。

Hope this helps. 希望这可以帮助。

Try this on your prepare for segue: 尝试此操作以准备进行测试:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
   if ([segue.identifier isEqualToString:@"ShowItemDetail"]) {
       NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
       ItemDetailViewController *destViewController = segue.destinationViewController;
       destViewController.itemDesc = [listItems objectAtIndex:indexPath.row];
       destViewController.itemName = [listTimes objectAtIndex:indexPath.row];
       destViewController.picImageView = [listImages objectAtIndex:indexPath.row];
}

And in your viewDidLoad try this: 并在您的viewDidLoad中尝试以下操作:

- (void)viewDidLoad {
   [super viewDidLoad];
   // Do any additional setup after loading the view.

   self.itemLabel.text = self.itemName;
   self.itemTitle.text = self.itemDesc;
   self.pictureImageView.image = self.picImageView;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM