如何加载以编程方式创建的导航视图并使其成为ModalView?

时间:2011-07-18 16:39:44

标签: iphone view uinavigationcontroller modal-dialog xib

我正在使用xcode中的实用程序模板制作iphone应用程序。所以在我的FlispSideView中,我有一个应该显示自定义图像选择器的按钮。我决定在这里使用这个漂亮的link

现在我进行了一些更改,因为我没有使用导航控制器加载自定义图像选择器(而是模态),这是在.m文件中以编程方式创建的。所以我将FlipSideView作为自定义图像选择器的委托,但在加载视图时仍然丢失了。我创建了一个xib文件并尝试将其连接到图像选择器,但这不起作用。 所以我想知道最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确解释了您的问题,但根据标题,我认为这可能是您正在寻找的内容:

// Initialize your custom controller and set the delegate
UIViewController *controller = [[UIViewController alloc] initWithNibName:@"MyView" bundle:nil];
controller.delegate = self;

// Set the title of your custom controller (optional)
controller.title = NSLocalizedString(@"My View", nil);

// Create a navigation controller with your custom controller as the root view controller
UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:controller];

// Present the navigation controller as a modal view controller
[self.navigationController presentModalViewController:navCon animated:YES];

// Release objects you own
[navCon release];
[controller release];

如果你的图像选择器是一个控制器,并且xib上的所有插座都正确连接到它,这应该可行。您应该能够使您的FlipSideView成为委托。在模态视图中按取消或完成取消将在代表中调用

的消息
[self.navigationController dismissModalViewControllerAnimated:YES];

编辑:

以下是我更新的示例代码的第一行,以匹配您正在使用的教程:

CustomImagePicker *controller = [[CustomImagePicker alloc] init];

其余的都是一样的。使用controller初始化导航控制器作为根视图控制器,然后将导航控制器显示为模态视图控制器。

答案 1 :(得分:0)

以编程方式创建导航 使用下面的代码以编程方式导航。写下面的代码 AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
    FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    self.nav = [[UINavigationController alloc] initWithRootViewController:firstViewController];
    [_window addSubview:nav.view];
    [_window makeKeyAndVisible];
  }