Ios UITableView拒绝转到detailViewController

Ios UITableView拒绝转到detailViewController,ios,xcode,arrays,uitableview,segue,Ios,Xcode,Arrays,Uitableview,Segue,编辑:此问题已移至,因为此问题已修复,但出现新错误 我已经做了4天了!我在日志中没有发现任何错误,但是每当我点击从mysql下载的动态数组填充的单元格时,它都不会转换。有趣的是,我在prepareForSegue中自行放置的nslogs没有收到任何响应 ViewController.h #import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> @interface ViewControll

编辑:此问题已移至,因为此问题已修复,但出现新错误

我已经做了4天了!我在日志中没有发现任何错误,但是每当我点击从mysql下载的动态数组填充的单元格时,它都不会转换。有趣的是,我在prepareForSegue中自行放置的nslogs没有收到任何响应

ViewController.h

   #import <UIKit/UIKit.h>
    #import <CoreLocation/CoreLocation.h>


@interface ViewController : UIViewController<UITableViewDataSource,
 CLLocationManagerDelegate,NSXMLParserDelegate, UISearchBarDelegate> {
    IBOutlet UISearchBar *searchBar;
    IBOutlet UITableView *tableView;
     IBOutlet UILabel *Label;


    CLLocationManager *locationManager;

    NSMutableArray *coolarray;

    float latitude;
    float longitude;
}



@property (nonatomic, retain) CLLocationManager *locationManager;


@end
#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController
 {

    IBOutlet UILabel *myLabel;

    NSString *myDogLang;

}

@property (nonatomic, retain) IBOutlet UILabel *myLabel;
@property (nonatomic, retain) NSString *myDogLang;

@end
DetailViewController.h

   #import <UIKit/UIKit.h>
    #import <CoreLocation/CoreLocation.h>


@interface ViewController : UIViewController<UITableViewDataSource,
 CLLocationManagerDelegate,NSXMLParserDelegate, UISearchBarDelegate> {
    IBOutlet UISearchBar *searchBar;
    IBOutlet UITableView *tableView;
     IBOutlet UILabel *Label;


    CLLocationManager *locationManager;

    NSMutableArray *coolarray;

    float latitude;
    float longitude;
}



@property (nonatomic, retain) CLLocationManager *locationManager;


@end
#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController
 {

    IBOutlet UILabel *myLabel;

    NSString *myDogLang;

}

@property (nonatomic, retain) IBOutlet UILabel *myLabel;
@property (nonatomic, retain) NSString *myDogLang;

@end
我还添加了一张图片来显示我的连接:

看起来您正在混合和匹配一些不同的样式。。。我建议简化您的代码:

1) 删除表格和详图视图之间的当前分段。通过按住control键并从prototype单元格(我假设这是一个prototype表)拖动到目标视图来创建一个新的。不要忘记将标识符命名为与您在prepareForSegue代码中使用的名称相同的名称)。此外,如果导航控制器中嵌入了表视图控制器(这是可导航表视图通常需要的),则segue的样式应为“推送”。否则,样式应为“模式”(不过,根据应用程序的可用性,您可能需要重新考虑此方法)

2) 球员班怎么了?这是扩展UITableViewCell的类吗?当您单击故事板中的原型单元时,identity inspector中列出了哪个类?是播放器还是UITableViewCell?属性检查器中单元格的标识符是什么?它是Player还是blank(根据您的代码,它必须是Player)?尝试将玩家类从图片中删除,至少暂时是这样。将单元格的标识符保留为
Player
,但在identity inspector中,将原型单元格的自定义类设置为
UITableViewCell
。将
tableView:cellforrowatinexpath:
方法更改为:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Player"];

    NSDictionary *itemAtIndex = (NSDictionary *)[self.coolarray objectAtIndex:indexPath.row];
    cell.textLabel.text = [itemAtIndex objectForKey:@"name"];
    return cell;
}
这里还有一个补充说明,您在这个方法中指出coolarray的成员是NSDictionary类型。在prepareForSegue中,您将coolarray的成员视为NSString。他们不可能两者兼而有之

3) 摆脱
tableView:didselectrowatinexpath:
方法。这很重要。这里有两种相互竞争的分段方法。在故事板和此方法中设置的一个。按照现在编写代码的方式,单击单元格将调用prepareForSegue->didSelect->prepareForSegue。您在这里尝试执行的所有操作都可以在
prepareforsgue:
方法中完成(请参阅下一步)

4) 将您的prepareforsgue:method更改为如下所示(您甚至可以去掉“if”语句,因为您现在只有一个segue):

5) DetailViewController的viewDidLoad方法正在用一些错误代码覆盖标签文本(UILabel不是数组)。将代码更改为:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.myLabel.text = self.myDogLang;
}

鉴于我上面提到的一些概念性问题,我强烈推荐阅读。这将有助于澄清您的生命周期和流程。

1-您应该选择您想要使用的方法:在故事板内连接segue或以编程方式加载的细节控制器(使用DidSelectRowatineXpath)。现在你正在做两件事:没有好处。尝试注释所有didSelectRowAtIndexPath代码,并仅使用情节提要。 此外,在DidSelectRowatineXpath中,您正在从nib加载详细信息vc???哪个笔尖?你没有笔尖,你有一个故事板!(您可以通过编程方式从故事板加载内容,但代码不同)

2-如果您使用推送来播放序列,则必须在情节提要中具有UINavigationController。放置导航控制器,当您将其放置在情节提要中时,它附带一个UITableViewController。卸下此UITV并连接您的UITV。 将单元重新连接到详细信息控制器,并记住为连接提供标识符名称,确保连接从单元开始。 我不确定你是否需要UINavigationController,即使是在模态阶段


试着让我知道“myLabel=[[NSArray alloc]..”这行得通吗myLabel似乎是UILabel,您正在分配给NSArray。您可以检查它。您是否实现了
tableView:DidSelectRowatineXpath:
?应该如何调用segue?抱歉。我的问题中意外地遗漏了这一部分。我已使用DidSelectRowatineXpath更新了问题。您的故事板中是否确实有一个segue那个标识符?看起来你在用笔尖。是的。我在用情节提要,我有一个情节提要转换“showDogDetail”.我应该调用什么来代替initWithNibName来反映故事板?我像你说的那样放置了一个nslog,但没有收到任何响应。我用放置它们的点更新了代码。啊。我收到了错误(使用未声明的标识符indexpath。您对我如何进行这项工作有什么建议吗?将它所说的
myIndexPath
更改为
indexpath
(我已经更新了上面的代码)。嗯,我仍然没有从日志中得到任何响应,转换也不起作用。不过,谢谢。我将上载头文件和更多的实现,以防我遗漏了某个步骤。请确保在NSLog语句的字符串之前添加@符号。您在发布的代码中忘记了:NSLog(@“test”);好的,我已经完成了所有的#2。对于#1,如果我可以在故事板中直观地传输我的数组coolarray,我会更喜欢这种方式。但是,我愿意在故事板中以编程方式进行。问题是,我以前从未使用动态单元格进行过此操作,因此我非常感谢任何链接或示例!我搜索过互联网,但没有任何内容g似乎在我的情况下正常工作…@user1776234您的代码需要更多的修复,而不仅仅是切换到UINavigationController。请仔细阅读我上面写的内容…因此,我做了很多调整。
- (void)viewDidLoad {
    [super viewDidLoad];
    self.myLabel.text = self.myDogLang;
}