如何在iphone中知道运行时的视图名称

时间:2011-06-06 10:21:21

标签: iphone uiview uiviewcontroller

我有超过3个视图和一个窗口视图(pdfReader.xib nib文件)。我有一个屏幕,其中包含按表视图表示的章节名称。每当任何行选择相关的chapeter正在加载。我控制着不同的观点。我想知道我的“pdfReader.m”文件中正在加载哪个视图。所以我将加载pdf文件进行阅读。我正在加载我的视图,如下面的代码。

我已经在

中编写了选择行的代码
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
..........
.........


    switch (indexPath.row) {
        case 0:
            NSLog(@"!!!!!!");
            pdfReader.view = pdfReader.Chapter1;
            break;
        case 1:
            //pdfReader.view = pdfReader.Chapter2;
            break;
        case 2:
            //pdfReader.view = pdfReader.Chapter3;
            break;

        default:
            break;
    }

...
...
}

我想在pdfReader.m文件中加载哪个视图。

3 个答案:

答案 0 :(得分:0)

只需将对PDFView对象的引用传递给ViewController中的TableView。

答案 1 :(得分:0)

您需要为每个视图指定标记值。 (使用init方法创建视图时)

 pdfReader.Chapter1.tag = 1;
 pdfReader.Chapter2.tag = 2;
 pdfReader.Chapter3.tag = 3;

现在修改您的didSelectRowAtIndexPath功能

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    {

       if(pdfReader.view.tag == 1)
       {
          //First chapter used 
       }
       else if(pdfReader.view.tag == 2)
       {       
            //Second chapter used 
       }
       else if(pdfReader.view.tag == 3)
       {
            //third chapter used 
       }
       ..........................
       ..........................
       ..........................

      switch (indexPath.row)
      {
      case 0:
           pdfReader.view = pdfReader.Chapter1;
        break;
      case 1:
           //pdfReader.view = pdfReader.Chapter2;
        break;
      case 2:
           //pdfReader.view = pdfReader.Chapter3;
        break;

      default:
        break;
     }
   }

答案 2 :(得分:0)

UIKit的每个UI对象都有一个名为tag的字段,该属性可用于设置任何类型的整数变量。方法是:

pdfReader.tag = indexPath.row;
switch (indexPath.row) {
    case 0:
        pdfReader.view = pdfReader.Chapter1;
        break;
    case 1:
        //pdfReader.view = pdfReader.Chapter2;
        break;
    case 2:
        //pdfReader.view = pdfReader.Chapter3;
        break;

    default:
        break;
}

我唯一不确定的是,是否建议为每章准备一个视图,因为如果章节数增加,你可能会遇到内存条件。