接口构建器连接导致标签栏应用程序崩溃

时间:2011-08-07 13:06:50

标签: iphone objective-c uitabbarcontroller iboutlet

进行锻炼我正在尝试从头开始基于标签栏开发一个简单的iPhone应用程序,但我遇到了一些问题.. 我已按照以下步骤进行操作:http://www.techotopia.com/index.php/Creating_an_iPhone_Multiview_Application_using_the_Tab_Bar

应用程序正确加载三个视图,直到内部没有连接;如果我将任何插座或操作连接到子视图的标签或按钮,应用程序崩溃。

例如,我的firstView.h包含:

#import <UIKit/UIKit.h>


@interface firstView : UIViewController {
IBOutlet UILabel *resultLabel;
}

-(IBAction)randomizeAction;

@property (nonatomic , retain) IBOutlet UILabel *resultLabel;


@end

和firstView.m

-(IBAction)randomizeAction:(id)sender
{
//NSInteger rand = arc4random() % 75;
//resultLabel.text = [ [NSString alloc] initWithFormat:@"Random integer: @%",rand];
UIAlertView *alert = [ [UIAlertView alloc] initWithTitle:@"Yeah!" message:@"Yeah" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil ];
[alert show];
[alert release];

}

如果我将标签连接到resultOutlet或按钮连接到“randomizeAction”方法,那么当我切换到相关视图时,应用程序会崩溃。 错误在哪里?

3 个答案:

答案 0 :(得分:1)

<。>在.h文件中,您将属性声明为IBOutlet两次。因为我不认为这会导致问题,但这只是不必要的。你还在.h文件中使用参数声明了randomizeAction,并使用参数实现了它。

您的代码应如下所示:

#import <UIKit/UIKit.h>

@interface firstView : UIViewController {
   UILabel *resultLabel;
}
@property (nonatomic , retain) IBOutlet UILabel *resultLabel;

-(IBAction)randomizeAction:(id)sender;

@end

和firstView.m

-(IBAction)randomizeAction:(id)sender
{
   //do stuff
}

答案 1 :(得分:0)

从该错误消息看,您的视图控制器似乎未在Interface Builder中正确连接。您确定您的视图控制器(IB中的文件所有者)被识别为firstView的实例吗?检查XCode中Identity Inspector中的类。

如果您可以显示声明和创建视图控制器的代码(很可能是在App Delegate中),那将会很有帮助。

答案 2 :(得分:-1)

我不确定,但我认为你必须改变这个:

@interface DetailViewController : UIViewController

致:

@interface firstView : UIViewController