我想應用一個基本的繼承概念,我需要在子視圖控制器中顯示父viewcontorller的textfield.text
的。但是我得到空值不能訪問父視圖控制器的變量
Parent.h
@interface EditEventViewController : UITableViewController
{
UITextField *textEventName;
UITextField *textEventLocation;
UITextField *textStartTime;
UITextField *textEndTime;
UITextField *textDate;
UITextField *textEndDate;
//tried IBOutlet version such as
//IBOutlet UITextField *textEventName;//this didnt work too
}
@property (nonatomic, strong) IBOutlet UITextField *textEventName;
@property (nonatomic, strong) IBOutlet UITextField *textEventLocation;
@property (nonatomic, strong) IBOutlet UITextField *textStartTime;
@property (nonatomic, strong) IBOutlet UITextField *textEndTime;
@property (nonatomic, strong) IBOutlet UITextField *textDate;
@property (nonatomic, strong) IBOutlet UITextField *textEndDate;
Parent.m
@synthesize textEndDate=_textEndDate;
@synthesize textDate=_textDate;
@synthesize textEndTime=_textEndTime;
@synthesize textEventName=_textEventName;
@synthesize textStartTime=_textStartTime;
@synthesize textEventLocation=_textEventLocation;
//test inherritance here
DeleteFromCalendar *deleteControl=[[DeleteFromCalendar alloc] init];
NSLog(@"Delete Request for text name %@",self.textEventName.text);
[deleteControl displayParentStrings];
Child.h
#import "EditEventViewController.h"
@interface DeleteFromCalendar : EditEventViewController
-(void)displayParentStrings;
@end
Child.m
-(void)displayParentStrings
{
NSLog(@"Display Parent Strings");
NSLog(@"DeleteFromCalendar Event Name %@",textEventName.text);
NSLog(@"DeleteFromCalendar Event %@",textEventLocation.text);
}
的NSLog:
Delete Request for text name Aeronautical Knowledge Review
DeleteFromCalendar Event Name (null)
DeleteFromCalendar Event Lcoation (null)
爲什麼我得到空?
你是否已經將界面元素上鉤到界面構建器的插座?此外,如果在父級中聲明屬性,則不需要綜合該屬性。 (並且在Xcode 4中,無論如何您都不需要綜合屬性 - 現在這是自動的。) –
不要再聲明child.m中的屬性,它將覆蓋父屬性。也不要將變量聲明爲屬性和類成員,只能使用其中的一個。 )。你也不需要在child.h文件中聲明該方法,它已經在parrent中聲明瞭。 – danypata
對不起復制粘貼錯誤,didnt兒童在IB重新申報文本框 –