繁体   English   中英

在标签上设置文本期间出现iOS 6问题

[英]iOS 6 issue during setting text on a label

我有一些标签问题。 我制作了一个公共方法,该方法从表格视图中获取信息,并以3个标签,文本视图的形式显示此信息,并从网络上加载图片。 我在表格视图didSelectRowAtIndexPath方法中设置了所有变量,但是在显示该信息时遇到了一些问题。 我做到了:在表视图控制器中,我调用了另一种方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.detailCharacterViewController = [[DetailCharacterViewController alloc] init];
    [self.detailCharacterViewController setupDetailViewControllerWithName:[self.arrayCharacters[indexPath.row] objectForKey:@"name"] andSurname:[self.arrayCharacters[indexPath.row] objectForKey:@"surname"] andKind:[self.arrayCharacters[indexPath.row] objectForKey:@"kind"] andDescription:[self.arrayCharacters[indexPath.row] objectForKey:@"description"] andImage:[self.arrayCharacters[indexPath.row] objectForKey:@"URLpic"]];
}

我实现了该方法,因此:

    - (void)setupDetailViewControllerWithName:(NSString*)name andSurname:(NSString *)surname andKind:(NSString*) kind andDescription:(NSString*)description andImage:(NSString*)url {
    NSLog(@"name = %@", name);
    self.labelName.text = name;
    self.labelSurname.text = surname;
    self.labelKind.text = kind;
    self.textDescription.text = description;

    NSURL *urlPic = [NSURL URLWithString:url];
    NSData *dataPic = [NSData dataWithContentsOfURL:urlPic];
    [self.imagePic setImage:[UIImage imageWithData:dataPic]];
}

如果查看日志,我会看到正确的信息,但是如果查看iPhone或iPhone模拟器上的GUI,它将保持空白。 此代码有什么问题? 感谢您的建议。

@亚历克斯·布伦德尔

#import <UIKit/UIKit.h>



@interface DetailCharacterViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *labelName;
@property (weak, nonatomic) IBOutlet UILabel *labelSurname;
@property (weak, nonatomic) IBOutlet UILabel *labelKind;
@property (weak, nonatomic) IBOutlet UIImageView *imagePic;
@property (weak, nonatomic) IBOutlet UITextView *textDescription;

- (void)setupDetailViewControllerWithName:(NSString*)name andSurname:(NSString *)surname andKind:(NSString*) kind andDescription:(NSString*)description andImage:(NSString*)url;

@end

问题是,当您调用setupDetailViewControllerWithName:... ,尚未加载DetailCharacterViewController的视图,因此尚未连接任何插座。 通过实例化的alloc-INIT视图控制器不会自动加载其视图。

您可以通过在设置方法的开头调用[self view]来强制加载视图。 之所以可行,是因为访问view属性会自动加载视图(如果之前未加载过)。

另外,您可以设置视图控制器的namesurnameNSString属性,并在viewDidLoad设置相应的标签。

您是否正在使用Interface Builder / Storyboards设计界面? 您确定要为每个UITextField / View连接IBOutlet吗?

您应该在视图控制器类的头文件中标识对象,并确保它们以IBOutlet作为前缀,以便它们出现在Interface Builders连接窗格中。 例如

IBOutlet UITextField labelName;
[...]

然后,您需要转到IB并转到连接窗格,以使视图控制器连接每个文本字段/视图。

这个问题也发生在我身上。

这与iOS实际上真的很晚才联系您的渠道有关。

如果在您的setupDetailViewControllerWithName:放置一个断点并检查IBOutlet变量,则它们将为nil。 这就是为什么您看到空白视图的原因。 (好旧的nil错误)

我要做的解决方法是在DetailCharacterViewController类中声明属性。 (例如@property (copy, nonatomic) NSString* name )。

在调用setupDetailViewControllerWithName:的地方,设置这些属性,例如:

self.detailCharacterViewController.name = name;

最后,在DetailCharacterViewControllerviewDidLoad: ,使用保存的属性设置标签的值。 (然后确保将插座连接起来)。

(顺便说一句,对于prepareForSegue:也存在此问题。目标视图控制器的出口在prepareForSegue:仍然为零。因此,您还不能直接在此处设置它们)

暂无
暂无

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

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