首页 文章

在Utility app的视图控制器中调用一个函数

提问于
浏览
0

我是目标C的新手,我有一个c背景 . 我想在屏幕上的标签中显示一个值 . 我从MainView.m调用标签值 . 但是,单击按钮而不是打印值后,标签变为空白 . 问题是什么?这是代码 .

MainView.h

@interface MainView:UIView {int a; }

  • (int)vr;

@结束

MainView.m

  • (int)vr {return 100; }

@结束

MainViewController.h

@interface MainViewController:UIViewController {

IBOutlet UILabel * myLabel;

NSMutableString * displayString;

MainView * view1; }

@property(非原子,保留)UILabel * myLabel;

@property(nonatomic,retain)NSMutableString * displayString;

  • (IBAction)showInfo;

  • (IBAction)pressButton:(id)发件人;

@结束

MainViewController.m

@synthesize myLabel,displayString;

  • (IBAction)pressButton:(id)sender {
[displayString appendFormat:@"%i", view1.vr];
myLabel.text = displayString;}



 - (void)viewDidLoad {
 view1 = [[MainView alloc] init];
 [super viewDidLoad];}

- (void)dealloc {
[view1 dealloc];
[super dealloc];}

我没有提到自动生成的代码 . 这足以得到全貌 . 我尝试了很多来调试这个东西 . 我相信IBAction会执行直接命令

myLabel.text = @“string”;

但它不会调用任何方法或类 . 任何微妙的想法?谢谢 .

1 回答

  • 0

    几个问题:

    1
    MainView.h 中,您声明了 -(id) vr;
    MainView.m 中它返回int .

    2
    也许 pressButton 没有连接到Interface Builder中的正确事件(它通常在内部触摸) .
    尝试写入以登录此方法 .

    3
    也许 myLabel 未连接到Interface Builder中的标签 .
    尝试将tome硬编码字符串设置为label的text属性 .

    4
    你在某个地方发起了 view1 吗?
    你也可以发布这段代码吗?

    5
    你可以用 [displayString appendFormat:@"%i", view1.vr]; ...

    EDIT (由于有问题的变化):

    6
    [super viewDidLoad]; 行应该是 viewDidLoad 内的第一行 .

    7
    [view1 dealloc]; - 永远不要直接在对象上调用 dealloc . 请改为呼叫 release . 唯一可以并且应该使用 dealloc 的地方是 dealloc 方法中的行 [super dealloc]; .

    8
    在Stack Overflow中格式化问题/答案时,请记住每个代码行应至少以4个空格(或制表符)开头 . 尝试通过在每个代码行的开头添加4个空格来重新格式化您的问题 .

    9
    我认为 displayString 没有发起 . 添加 viewDidLoad 中的下一行: displayString = [NSMutableString new];

相关问题