如何将ViewController更改为没有“.xib”的另一个?

时间:2012-05-10 19:44:30

标签: iphone objective-c ios

我有一个视图控制器,使用Three20

生成“.xib”

我想要一个tableView发送给我这个ViewController你没有“.xib”吗?

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

    if (!self.albumController) {
        self.albumController = (AlThumbsViewController *)self; //AlThumbsViewController no have xib  //Three20 is generated automatically with
    }

    [self.navigationController pushViewController:self.albumController animated:YES];
    [self.albumController release];
    self.albumController = nil;
}

谢谢大家。

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望在创建第二个视图控制器时从一个视图控制器转换到没有为其生成NIB / XIB文件的第二个视图控制器?

如果是这样,您需要在xcode中创建一个新的XIB。转到新文件,用户界面,查看。然后,通过将XIB的界面构建器中的“类名”更改为与视图控制器相同的名称,将新的XIB文件关联到视图控制器。然后将Interface Builder中的视图出口设置为XIB的主视图。然后在没有XIB的视图控制器上执行initWithNibName,并将刚刚创建的新XIB文件传递给它。

基于评论编辑:

步骤1:创建新文件,用户界面,视图。这将生成一个独立的XIB文件。

第2步:转到新的XIB。单击文件的所有者。单击右侧菜单上的Identity Inspector图标(中间的小图标)。对于“Class”,将名称更改为要将其链接到的视图控制器的确切名称。

第3步:点击文件的所有者。单击右侧菜单上的Connections Inspector图标(最右侧的小图标)。在Outlets下,将“view”连接到XIB的主视图(只需从圆圈拖动到主窗口)。

步骤4:像这样加载视图控制器:

MyViewController *view = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

答案 1 :(得分:0)

picture

一样
error:
Undefined symbols for architecture i386:
   "_OBJC_CLASS_ $ _AlThumbsViewController", Referenced from:
       objc-class-ref in SocialesAlbumViewController.o
ld: symbol (s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use-v to see invocation)

请参阅image此处

答案 2 :(得分:0)

MyViewController * view = [[MyViewController alloc] initWithNibName:@“MyView”bundle:nil];

    [self.navigationController pushViewController:view animated:NO]; ---> you can use YES

或  [self.view addsubview:view.view];

和相反的

[self.navigationController popViewControllerAnimated:NO];

[self.view romovefromsuperview];