こんにちは、DetailViewController が UILabel アウトレットを設定したくないという問題があります。これはマスター ディテール アプリケーション テンプレートです。セルを押すと、次のようになります。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
// here it accordingly sets the ObjectItem to my custom object.
Torrent *object = _torrents[indexPath.row];
[[segue destinationViewController] setObjectItem:object];
}
}
そして、ここで DetailViewController viewDidLoad で呼び出すメソッド
- (void)configureView
{
// Since i set the objectItem earlier it works, it set the outlets
if (self.objectItem) {
theTitle.text = self.objectItem.MovieTitleClean;
genre.text = self.objectItem.Genre;
size.text = self.objectItem.Size;
quality.text = self.objectItem.Quality;
rating.text = self.objectItem.MovieRating;
year.text = self.objectItem.MovieYear;
}
if (self.detailObject) {
ShortDescription.lineBreakMode = NSLineBreakByWordWrapping;
self.details = [_detailObject objectAtIndex:0];
NSLog(@"Called"); // this is called meaning it should set the outlets but it doesn't...
resolution.text = self.details.Resolution;
framerate.text = self.details.FrameRate;
language.text = self.details.Language;
peersSeeds.text = [NSString stringWithFormat:@"%@/%@",self.details.TorrentPeers,self.details.TorrentSeeds];
downloaded.text = self.details.Downloaded;
ShortDescription.text = self.details.ShortDescription;
}
DetailViewController viewDidLoad で、UILabel アウトレットをカスタム objectItem に設定する configureView を呼び出しますが、うまく機能しますが、デリゲートから新しい detailObject を受け取り、その新しい detailObject に従って他の UILabels を設定すると、何も設定されていないようです (注)ビューは既にロードされており、NSlog は私が configureView を呼び出していることを示しています。これはアウトレットを設定することを意味します。15 秒ほど待つ必要があり、自動的にすべてを設定します。そもそもやった。ありがとう
編集:ここに.hファイルがあります
#import <UIKit/UIKit.h>
#import "TorrentDetail.h"
#import "YifyAPI.h"
#import "Torrent.h"
@interface DetailViewController : UIViewController <YifyAPIDelegate> {
IBOutlet UILabel *theTitle;
IBOutlet UILabel *genre;
IBOutlet UILabel *size;
IBOutlet UILabel *quality;
IBOutlet UILabel *rating;
IBOutlet UILabel *year;
IBOutlet UILabel *resolution;
IBOutlet UILabel *framerate;
IBOutlet UILabel *language;
IBOutlet UILabel *peersSeeds;
IBOutlet UILabel *downloaded;
IBOutlet UILabel *ShortDescription;
IBOutlet UIImageView *LargeImageCover;
}
@property (strong, nonatomic) Torrent *objectItem;
@property (strong, nonatomic) TorrentDetail *detailObject;
@end