2011-06-16 69 views
-2

在我的应用程序中,我的第一页是UITableviewController。然后,我在UIViewcontroller像添加subViewUINavigation Controller子视图问题

viewcontrollername * prod=[[viewcontrollername alloc]init]; 
[self.view addSubview:prod.view]; 

这很好,但我的问题是在UINavigation控制器viewcontroller页面无法正常工作(不导航至另一页)。我在单击事件实现它:

prod *login=[[prod alloc]init]; 
UINavigationController *navCtrl= [[UINavigationController alloc] init]; 
[navCtrl pushViewController:login animated:YES]; 
[login release]; 

而且

prod *login=[[prod alloc]init]; 
[self.navigationController pushViewController:login animated:YES]; 
[login release]; 

但它并不导航到另一个页面。

+0

而问题是什么? – marzapower 2011-06-16 08:02:16

+0

@marzapower UINavigation控制器不能在子视图中工作 – Rams 2011-06-16 08:24:34

+0

你的意思是不工作?你有错误吗?例外?你无法看到任何东西吗?什么? – marzapower 2011-06-16 12:00:04

回答

0

使用此代码时,你初始化导航控制器:

UINavigationController *navigationCtrlSlideShowSetting = [[UINavigationController alloc] initWithRootViewController:yourviewcontroller]; 

感谢

+0

此代码工作但返回按钮不可见 – Rams 2011-06-16 07:31:03

+0

在viewwillappear中添加自定义后退按钮和事件。 – 2011-06-16 07:35:38

0

它看起来像navCtrl尚未被添加到视图层次结构。您可以将其作为子视图添加到window或将其设置为rootViewController

0

您的第一个视图控制器应该是导航控制器的根视图控制器。

initWithRootViewController

另外,您可以在新创建的导航控制器添加到您的视图 - 控制。

[self.view addSubview:navCtrl.view]; 

完成此操作后,您可以将视图控制器推送到导航控制器。

编辑: 您需要有一个后退按钮,以防您无法返回主屏幕。更好的选择是在主屏幕上使用导航控制器并继续将视图推送到堆栈。

+0

此代码工作,但返回按钮不可见 – Rams 2011-06-16 07:27:03

+0

这是因为登录屏幕成为导航控件的第一个视图,并且没有更多视图。在这种情况下,您可以在视图加载方法中创建自定义后退按钮。它是一种不同的方法。我会尝试编辑我的帖子以适应此。 – 2011-06-16 07:51:06