推送数据从一个UIViewController到另一个
问题描述:
我推送一个字符串从一个UIViewController到另一个到目前为止,我成功做到了这一点,但是,当我将推送的字符串添加到NSMutableArray和NSLog数组总数时,它总是返回0这里是我的代码:我正在使用故事板,并且是否需要将第二个视图引用到视图中进行加载?推送数据从一个UIViewController到另一个
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[_TableView setDelegate:self];
//[_TableView setDataSource:self];
_numberOfRows = [[NSMutableArray alloc]init];
}
-(void)pushName:(NSString*)contactName
{
//NSLog(@"Pushed name is: %@ ", contactName);
_contactName = contactName;
NSLog(@"Pushed name is: %@ ", _contactName);//<-- Returns the pushed string fine
[_numberOfRows addObject:contactName];
//[self.TableView reloadData];
NSLog(@"Number of names: %d ", [_numberOfRows count]);//<--Always returns a 0
}
不太确定为什么这不起作用。如果需要更多的代码来澄清这个问题,那么请不要问。
答
当您调用pushName时,您的数组似乎尚未实例化。
您能否向我们提供您称之为何处的环境?
编辑:只是阐述。你的问题不是在两个控制器之间传递数据。你的问题似乎是你的数组没有响应addObject和计数消息。
尝试在你的数组上使用懒惰实例,它应该工作。
编辑2:代码片段: 尝试添加方法:
- (NSMutableArray *)numberOfRows:
{
if(_numberOfRows == nil) _numberOfRows = [[NSMutableArray alloc] init]
return _numberOfRows
}
你在哪里使用_numberOfRows
尝试使用self.numberOfRows
,即
[self.numberOfRows addObject:contactName];
//[self.TableView reloadData];
NSLog(@"Number of names: %d ", [self.numberOfRows count]);//<--Should return 1 or more now.
编辑3:哦,如果你做,你可以删除viewDidLoad
上的实例。但你知道这一点。
编辑4:修复代码片段。对不起,我编辑这么多。只是试图确保你得到正确的答案。
+0
非常感谢我正在寻找 – Led
看看这里http://*.com/a/16142163/1328096 – jamil
@Undo不,这不是一个重复的问题我没有通过一个NSMutableArray im传递一个单一的字符串我只想填充一个数组第二个UIViewController他们是完全不同的问题bro – Led
@one同样的原则。任何传递数组的东西都可以传递一个字符串。只需查看答案并用'NSString'替换'NSMutableArray'即可。 – Undo