我的問題是,在ProductNote類UIButton
動作我做initWithNibName
票據類展現酥料餅用在註釋類UITableView
。我從sqlite
獲取數據,然後將其加載到UITableView
在tableViewDidSelectRowAtindexPath:
。我得到了selectedNote並創建ProductNote類的對象調用selectedNote實例方法只設置IBOutlet中的textview.text
但其零。這就是我的問題,下面是代碼,請幫助我知道爲什麼我面臨這種類型的問題。我使用Xcode的4.3.3,而不是使用ARC。手動我在每個定義的ViewController dealloc方法IBOutlet中的UITextView是零的使用方法
//**ProductNote.h Class****************************
#import <UIKit/UIKit.h>
@class Notes;
@interface ProductNote : UIViewController<UIPopoverControllerDelegate>
{
UIPopoverController *popOverController;
UITextView *txtmesssagenotes;
Notes *objNotes;
}
@property (retain, nonatomic) IBOutlet UITextView *txtmesssagenotes; //It is Connected to ProductNote.xib
@property (retain,nonatomic) UIPopoverController *popOverController;
@property (retain,nonatomic) Notes *objNotes;
-(IBAction)presentPopOver:(UIButton*)sender;
-(void)selectedNote:(NSString*)note;
@end
//ProductNote.m Class
@implementation ProductNote
@synthesize txtmesssagenotes,popOverController,objNotes;
-(IBAction)presentPopOver:(UIButton*)sender
{
self.objNotes=[[Notes alloc]initWithNibName:@"Notes"bundle:nil];
UIPopoverController *popOver=[[[UIPopoverController alloc]initWithContentViewController:objNotes]autorelease];
self.popOverController=popOver;
self.popOverController.delegate=self;
self.popOverController.popoverContentSize=objNotes.view.frame.size;
CGRect rect=[self.view convertRect:objNotes.view.frame fromView:self.view];
rect.origin.y+=110;
rect.origin.x+=23;
[self.popOverController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:0 animated:YES];
//Then I get popOver with tableview
}
-(void)selectedNote:(NSString*)note
{
self.txtmesssagenotes.text=note;
//Here I am getting txtmesssagenotes=0X0 or nil. Using self or without self Please tell me the reason.
}
- (void)dealloc {
[txtmesssagenotes release];
[popOverController release];
[objNotes release];
[super dealloc];
}
@end
@interface Notes : UITableViewController
{
NSMutableArray *arrNotes;
NSString *selectedNote;
UITableView *tblNotes;
}
@property(nonatomic,retain)NSMutableArray *arrNotes;
@property(nonatomic,retain)NSString *selectedNote;
@property(nonatomic,retain)IBOutlet UITableView *tblNotes;
@end
//Actually I skip the other methods that makes larger program to read . other methods only used to fetch data from sqlite and fill up the arrNotes that is used to fill all rows in the tableview.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.selectedNote=[self.arrNotes objectAtIndex:indexPath.row];
//這裏self.arrNotes有效的對象和包含的數據,和的NSString對象分配給self.selectedNote
ProductNote *productNote=[[ProductNote alloc]init];
[productNote selectedNote:self.selectedNote]; //after calling selectedNote i goto to selectedNote implementation or definition above.
[productNote release];
}
-(void)dealloc
{
[arrNotes release];
[selectedNote release];
[tblNotes release];
[super dealloc];
}
爲什麼我失去2個聲譽????????????? – 2012-07-20 11:36:03
由於您問題頂部的文本沒有任何標點符號,閱讀起來很糟糕 - 請嘗試放入換行符和/或段落:) – deanWombourne 2012-07-20 11:49:54
供參考:如果您要創建UIViewController子類,請將其稱爲'somethingViewController' - 閱讀你的代碼的方式會更快地理解它:)例如'ProductNote' =>'ProductNoteViewController' – deanWombourne 2012-07-20 12:52:27