Я новичок в программировании для iPhone. Я пытаюсь отправить сообщение с одного контроллера представления на другой. Идея состоит в том, что viewControllerA берет информацию от пользователя и отправляет ее viewControllerB. Затем viewControllerB должен отображать информацию в метке.
viewControllerA.h
#import <UIKit/UIKit.h>
@interface viewControllerA : UIViewController
{
int num;
}
-(IBAction)do;
@end
viewControllerA.m
#import "viewControllerA.h"
#import "viewControllerB.h"
@implementation viewControllerA
- (IBAction)do {
//initializing int for example
num = 2;
viewControllerB *viewB = [[viewControllerB alloc] init];
[viewB display:num];
[viewB release];
//viewA is presented as a ModalViewController, so it dismisses itself to return to the
//original view, i know it is not efficient
[self dismissModalViewControllerAnimated:YES];
}
- (void)dealloc {
[super dealloc];
}
@end
viewControllerB.h
#import <UIKit/UIKit.h>
@interface viewControllerB : UIViewController
{
IBOutlet UILabel *label;
}
- (IBAction)openA;
- (void)display:(NSInteger)myNum;
@end
viewControllerB.m
#import "viewControllerB.h"
#import "viewControllerA.h"
@implementation viewControllerB
- (IBAction)openA {
//presents viewControllerA when a button is pressed
viewControllerA *viewA = [[viewControllerA alloc] init];
[self presentModalViewController:viewA animated:YES];
}
- (void)display:(NSInteger)myNum {
NSLog(@"YES");
[label setText:[NSString stringWithFormat:@"%d", myNum]];
}
@end
YES регистрируется успешно, но текст метки не меняется. Я убедился, что все мои подключения в Interface Builder корректны, ведь в моей программе есть другие методы (IBAction), которые изменяют текст этой самой метки, и все эти другие методы работают отлично...
Есть идеи, ребята? Вам не нужно давать мне полное решение, любая информация поможет. Спасибо.
(id)sender
. - person Abizern   schedule 09.01.2011alloc
(илиcopy
,new
,retain
) должен следоватьrelease
илиautorelease
. - person mvds   schedule 09.01.2011