0

UICollectionView の詳細ビューを表示するために、MZFormSheetController というカスタム ModalViewController を使用しています。現在、次のようなモーダル ビュー コントローラーにプロパティを作成しました。

@property (strong,nonatomic) NSString *user;
@property (strong,nonatomic) NSString *caption;
@property (weak, nonatomic) IBOutlet UILabel *username;
@property (weak, nonatomic) IBOutlet UILabel *captiontext;

そして、ユーザーが次のように UICollectionViewCell をタップしたときに、詳細ビュー コントローラーの表示を設定しようとしました。

NSDictionary *entry = [self entries][indexPath.row];
NSDictionary *text = [self entries][indexPath.row];

ModalViewController *m = [self.storyboard instantiateViewControllerWithIdentifier:@"modalView"];
m.entry = [self entries][indexPath.row];
m.text = [self entries][indexPath.row];
m.user = entry[@"user"][@"full_name"];
m.caption = text[@"caption"][@"text"];

MZFormSheetController *formSheet = [[MZFormSheetController alloc] initWithViewController:m];
formSheet.transitionStyle = MZFormSheetTransitionStyleDropDown;
formSheet.shouldDismissOnBackgroundViewTap = YES;
[formSheet presentAnimated:YES completionHandler:^(UIViewController *presentedFSViewController) {

}];
formSheet.didTapOnBackgroundViewCompletionHandler = ^(CGPoint location)
{

};

}

modalviewcontroller のストーリーボードに 2 つのラベルを作成し、このように MainViewController のキャプションとユーザーの値と等しくしようとしました。

[self.username.text isEqualToString:self.user];
[self.captiontext.text isEqualToString:self.caption];

ただし、このすべての後、モーダルビューコントローラーのラベルはまだこのようにラベルを付けています..

DetailViewController での試行に失敗しました

4

2 に答える 2

0

viewDidLoad メソッドで ModalViewController 内にユーザー名とキャプションテキストを設定しましたか? ストーリーボードから初期化した後、すべての IBOutlets は nil です。viewDidLoad 内でセットアップする必要があります。

- (void)viewDidLoad 
{
   [super viewDidLoad];

   self.username.text = self.user;
   self.captiontext.text = self.caption;
}
于 2013-09-01T11:42:20.360 に答える
0

-isEqualToString:このメソッドは 2 つの s が等しいかどうかをテストするために使用されNSString、実際には NSString の値を設定しないため、ラベルが正しい値に更新されていません。文字列変数に値を割り当てる場合は、他の変数を割り当てる場合と同じように行います。したがって、ラベルを適切に設定するには、次UILabelのように の text プロパティを割り当てる必要があります。

self.username.text = self.user;
self.captiontext.text = self.caption;
于 2013-08-31T20:10:45.650 に答える