0

問題は次のとおりです。テーブルビュー、カスタムセル、および詳細ビューがあります。テーブルに10行あり、ユーザーが行の1つを選択すると、詳細ビ​​ューが開きます。テーブルビューの選択した行から詳細ビューのナビゲーションバーのタイトルを設定するにはどうすればよいですか?私には3つのクラスがあります-televisionList(私のテーブルビュー)、televisionCell(テーブルビューの私のセル)、televisionDetail(行が選択されたときに開く私の詳細ビュー)。私のtelevisionCellで、次のラベルを宣言しました。

@property (weak, nonatomic) IBOutlet UILabel *tvLabel;

私のtelevisionList(テーブルビュー)には、次のメソッドがあります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    televisionCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"televisionCell" owner:self options:nil];
        for (id currentObject in objects)
        {
            if ([currentObject isKindOfClass:[UITableViewCell class]])
            {
                cell = (televisionCell *)currentObject;
                break;
            }
        }

    }
switch (indexPath.row)
    {
        case 0:
        {
            cell.imageView.image = bnt;
            cell.tvLabel.text = @"БНТ 1";
            cell.backgroundView.image = [UIImage imageNamed:@"lightbackgr.png"];
            break;
        }

        case 1:
        {
            cell.imageView.image = btv;
            cell.tvLabel.text = @"bTV";
            cell.backgroundView.image = [UIImage imageNamed:@"background-cell.png"];
            break;
        }
        case 2:
        {
            cell.imageView.image = novatv;
            cell.tvLabel.text = @"Нова TV";
            cell.backgroundView.image = [UIImage imageNamed:@"lightbackgr.png"];
            break;
        }
}

ここで、行が選択されたときに詳細ビューのタイトルcell.tvLabel.textと等しくなるように変更したいと思います。どこでどのようにそれを行うのですか?前もって感謝します!

4

1 に答える 1

1

あなたが書いたように、あなたはセルが選択されたときにタイトルを設定したいので、最良の方法は以下を使用することです:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    televisionCell *cell=[tableView cellForRowAtIndexPath:indexPath];
    details.title=cell.tvLabel.text;    
}

ただし、モデルオブジェクトをアプリに導入し、それらをいくつかの配列に保持することを検討することもできます(以下objectsの例では`。したがって、メソッドは次のようになります。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   YourObject* obj=[self.objects objectAtIndex:indexPath.row];
    details.title=obj.stationName;

}
于 2013-03-27T12:06:31.397 に答える