我有下面的代码:其中Cell new是Custom cell,当用户选择一个必须转移到uiviewcontroller以显示msg的行但是我无法做到这一点时,该数组的索引对象就是索引。
这样做:我收到错误 从'UILabel *'分配给'NSString *'的指针类型不兼容
VC2.DisplayMsg.text = cell.textLabel;
displayMsg是uiviewcontroller中必须显示文本的标签。我哪里出错了?
请帮助我或建议任何其他方式将值从导航uitableviwController转移到另一个viewcontroller,选择行并在该uiviewController中显示消息。请帮助我。我很感激。
先谢谢。
完整代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Cellnew *cell = [array objectAtIndex:indexPath.row];
ViewControllerDisplayMsg *VC2 = [[ViewControllerDisplayMsg alloc] init];
VC2.DisplayMsgtext = cell.textLabel.text;
[self performSegueWithIdentifier:@"displayMsgSegueIdentifier" sender:self];
}
错误:
因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFString textLabel]:发送到实例的无法识别的选择器
答案 0 :(得分:2)
您应该在其他NSString
中定义viewController
属性,并首先将表中的值分配给此字符串,最后在viewController的viewDidLoad方法中,您可以将此字符串分配给标签文本。最好将Other Controller定义为FirstController的属性。
您应该在类中更新图形元素,因为这个相应的类或控制器负责显示图形元素和图形元素。值。
<强> YourTableViewController.h 强>
@class SecondViewController;
@property(strong,nonatomic)SecondViewController secondVC;
<强> YourTableViewController.m 强>
self.secondVC=[SecondViewContrlller alloc]initwithNibName:@"SecondViewController" bundle:nil];
self.secondVC.stringValue= cell.textLabel.text;
<强> YourOtherViewController.h 强>
@property(strong,nonatomic)NSString *stringValue;
<强> YourOtherViewController.m 强>
-(void)viewDidLoad{
self.displayMsg.text=self.stringValue;
[super viewDidLoad];
}
答案 1 :(得分:1)
在UIViewController中获取NSString属性,比如说DisplayMsg: 然后在didSelectRowAtIndexPath方法中:
VC2.DisplayMsg=cell.textLabel.text;
答案 2 :(得分:1)
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}
此代码可以帮助您