在viewDidLoad中,UIButton为null

时间:2014-05-01 00:25:41

标签: ios objective-c

抱歉我的英语不好,我在ios开发方面很新。 我正在尝试为我的TutorialChildController添加一个新的IBOutlet,它继承自UIViewController。我的TutorialChildController在Storyboard中,它有UILabel,UIButton和UIImage。我在另一个ViewController中动态创建它,它是rootViewController。代码在viewDidLoad中调用,如下所示:

TutorialChildController *tutorialChildController = [self.storyboard instantiateViewControllerWithIdentifier:@"TutorialChildController"];

这是我的TutorialChildController.h:

#import <UIKit/UIKit.h>

@interface TutorialChildController : UIViewController

@property (weak, nonatomic) IBOutlet UIButton *startButton;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet UIImageView *tutorialImage;


@property  NSUInteger index;
@property NSString *titleText;
@property NSString *imageFile;

@end

然而在TutorialChildController.m中我试图检查我的Outlets但我的startButton是null。

- (void)viewDidLoad
{
 [super viewDidLoad];
 NSLog(@"myButton : %@ ", self.startButton); // output is null
 NSLog(@"myLabel : %@ ", self.titleLabel); // output is object
}

在storyboard中链接的所有IBOutlet只是startButton为null。我不知道为什么。

我添加了一些截图:

ss1

ss2

ss3

4 个答案:

答案 0 :(得分:4)

我无法相信,只是尝试了Xcode菜单:

产品&gt;干净,它现在有效!!!!该死的。

我花了7-8小时来解决。 :/谢谢你帮忙。

答案 1 :(得分:0)

试试这个:

- (void)viewDidAppear:(BOOL)animated
{
  [super viewDidAppear:animated];
  NSLog(@"myButton : %@ ", self.startButton.titleLabel.text);
  NSLog(@"myLabel : %@ ", self.titleLabel.text);
}

答案 2 :(得分:0)

1:从故事板中删除按钮并删除该行      @property(弱,非原子)IBOutlet UIButton * startButton;

2:添加另一个按钮,以防万一。

绝对可以。

答案 3 :(得分:0)

确保按钮作为引用插座连接到视图控制器,而不是插座集

1enter image description here