在RootViewController中重新调用NSArray

时间:2010-10-14 03:07:27

标签: iphone uitableview nsarray

我使用原始方法XML数据可以在rootviewcontroller中显示TableView。当我使用新程序时,它只显示表中没有数据。如何在New Method中显示数据?

原创方法

  1. appDelegate.m(设置XML并加载数据)
  2. rootviewController.m(使用nsarray&将数据加载到表视图中)
  3. 新方法

    1. appDelegate.m(设置XML并加载数据)
    2. mainviewController.m(设置UIVEW&按键),(按下按钮时,转到rootviewcontroller.m)
    3. rootviewController.m(使用nsarray&将数据加载到表视图中)
    4. appDeleagte.m

      - (void)addbookToList:(NSArray *)books {
      [self.rootViewController insertBooks:books];
      

      mainviewcontroller.h

      #import <UIKit/UIKit.h>
      @class RootViewController;
      @interface MainViewController : UIViewController {
      
      IBOutlet RootViewController *rvController; 
      }
      
      - (IBAction) startButton;
      @end
      

      mainviewcontroller.m

      -(IBAction)startPage {
       rvController = [[RootViewController alloc] initWithNibName:@"RootView" bundle:[NSBundle mainBundle]];
       [self.navigationController pushViewController:rvController animated:YES];
      

      rootviewcontroller.m

      - (void)viewDidLoad {
      [super viewDidLoad];
      
      self.bookList = [NSMutableArray array];
      
      self.tableView.rowHeight = 60.0;
      
       [self addObserver:self forKeyPath:@"bookList" options:0 context:NULL];
      }
      

1 个答案:

答案 0 :(得分:0)

如果您在根视图控制器尚不存在的情况下在您的应用委托中调用addBookToList:,则不会发生任何事情(将消息发送到nil)。存储books数组,并在创建它之后将其传递给根视图控制器,但在将其推入导航控制器的堆栈之前。