代码之家  ›  专栏  ›  技术社区  ›  testing

何时分配和初始化视图控制器

  •  0
  • testing  · 技术社区  · 14 年前

    最近我加入了两个Xcode项目。为了让它工作,我必须分配并初始化我的视图控制器。

    self.myViewController = [[MyViewController alloc] init];
    

    但为什么呢?在另一个项目中,我有相同的代码。唯一的区别是不同视图的层次结构。我在顶部(开始)添加了一个新视图。因此调用视图控制器不再是堆栈上的第一个视图。

    我用这种方式在堆栈上推我的视图:

    [[self navigationController] pushViewController:myViewController animated:YES];
    

    在我的nib中,我添加了一个带有IB的View Controller对象,并连接了Outlets。

    我有记忆 管理问题

    3 回复  |  直到 14 年前
        1
  •  0
  •   pgb    14 年前

    我需要看更多的代码来回答为什么必须分配视图控制器,但我要说的是,您总是手动分配它们(至少在我的经验中是这样)。

    retain 财产( @property(retain) UIViewController *myViewController

    我通常这样做:

    self.myViewController = [[[MyViewController alloc] init] autorelease];
    
        2
  •  0
  •   testing    14 年前

    我发现:在IB中,我必须在view controller对象上设置nib名称。那么分配和初始化是由IB完成的?

        3
  •  0
  •   Ivan Ferić    11 年前

    还有一个选择:

    (IBAction)loginButton:(UIButton *)sender {
        NSLog(@"pressed login");
        ICMasterViewController *controller = [[self storyboard] instantiateViewControllerWithIdentifier:@"mainnav"];
        [self presentViewController:controller animated:YES completion:nil];
    }
    

    UIViewController 有名字的 mainnav