1

我目前的 UIViewController 的构造函数定义如下:

public MyViewController(int mode) : base ("MyViewController", null)
{
   //Initialize viewcontroller
}

我想根据mode参数在不同的情况下使用不同的nib文件。问题是在调用基本构造函数之前,我无法在构造函数中运行任何代码。

我知道可以使用[condition] ? [true_path] : [false_path]语法在两个 nib 字符串之间进行选择,但我必须在其中四个之间进行选择。

有没有办法在不向MyViewController构造函数添加新参数的情况下做到这一点?

4

1 回答 1

3

您可以使用静态方法来解决此问题。

像这样定义它:

private static string GetNibFile(int mode)
{
    //Pick your nib file here, using a switch or something
    return "ChosenNibName";
}

然后像这样使用它:

public MyViewController(int mode) : base (GetNibFile(mode), null)
{
   //Initialize viewcontroller
}
于 2013-07-04T08:18:06.080 回答