我有一个问题......
我有两个ViewCotroller
。
名称为ViewController
和DetailViewController
DetailViewController
有数据(Coredata中的关系)。
这是DetailViewController
代码。
NSSet *tags = self.bookInfo.details.tags;
tagNamesArray = [[NSMutableArray alloc] initWithCapacity:tags.count];
for (Voca_Tag *tag in tags) {
[tagNamesArray addObject:tag.mean];
}
我想在tagNamesArray.count
中使用ViewController
。
另外,我被使用了
DetailViewController *detailViewController = [[DetailViewController alloc]init];
[detailViewController.tageNamesArray count];
它不起作用。
我想在UITableView上使用Count to cell.text。
pastebin.com/RwuR6PDt<<视图控制器 pastebin.com/2F345vg7<< DetaulViewController
检查...
答案 0 :(得分:1)
你应该写你的委托:在SecondViewController.H:
@protocol messageDelegate <NSObject>
@optional
-(void) sendDataCount:(NSInteger) i;
@end
@interface SecondViewController : NSString
@property (nonatomic, assign) id <messageDelegate> delegate;
@end
在SecondViewController.m中:
-(void)readyToSend
{
[self.delegate sendDataCount:__YOURCOUNT__];
}
在ViewController.h中:
@interface ViewController : UIViewController<messageDelegate>
@end
在ViewController.m中:
- (void)viewDidLoad {
SecondViewController *secondViewController = [[SecondViewController alloc] init];
secondViewController.delegate = self;
}
-(void) sendDataCount:(NSInteger) i
{
NSLog(@"Your Count = %d",i);
//send Data using POST method
}
希望它会有所帮助!
答案 1 :(得分:0)
这是因为tafNamesArray当时没有内存分配,因此该数组将返回nil,其计数将为零。
如果你想获得[tafNamesArray count],首先调用启动tafNamesArray的方法,例如:
In DetailViewController
-(void)array
{
NSSet *tags = self.bookInfo.details.tags;
tagNamesArray = [[NSMutableArray alloc] initWithCapacity:tags.count];
for (Voca_Tag *tag in tags) {
[tagNamesArray addObject:tag.mean];
}
}
then In ViewController
call :
DetailViewController *detailViewController = [[DetailViewController alloc]init];
//First call this method
[detailViewController array];
//then this line will work
int i = [detailViewController.tafNamesArray count];