我有一個tableviewcontroller和tableviewcontroller的相應rowclick我想顯示相應的行細節內容的細節。限制沒有故事板的uitabbarviewcontroller ios7的視圖高度
行詳細視圖如下將有一個固定的內容:
- 部首
- 標題下面頭
- 圖片相關標題
- 這裏我要顯示的相應視圖uitabbarcontroller tab按鈕
在上述幾點來自點1-3的內容將覆蓋將被修復的視圖控制器頁面的一半&視圖控制器的下半部分將具有第四點,即相應的tab鍵的視圖,其將根據爲各個選項卡創建的視圖而改變。
我無法找到任何解決方案來保持視圖的上半部分固定。以及如何將tabbar的視圖限制在屏幕的下半部分。
我正在做這個應用程序沒有使用故事板。
搜了很多,但沒有得到任何解決方案。
請提供一些示例代碼或教程,如果有的話。
以下是我真正想要的圖像,因爲我在android中創建了相同的圖像。
抱歉,需要模糊圖像的內容。
在按照上述圖像是事情要固定:
- 在頂部的藍色條是報頭,這將保持固定。
- 標題下方的棕色條和標題下面的白色圖片也是固定的。
- 圖像下面的四個按鈕是IOS中將出現在屏幕底部的tabbar按鈕。
- 下方的tabbar按鈕是包含第一個tabbar按鈕的內容的視圖。
我的問題是我想要修復以上兩點中的前兩個,並且包含各個tabbarbuttons視圖的viewcontroller應該可以在屏幕的其餘部分用4個tabbar按鈕看到。
所以,如果我點擊任何選項卡按鈕,只有其屏幕下半部佔據的視圖將改變&上半部分將保持靜態(固定)。
希望我的解釋清楚地表明瞭對這個問題的一些懷疑。基於什麼@Simon麥克勞林建議
---- EDITED SOLUTION,下面是代碼:
我已經實現在我所編寫的代碼實現我的方案的功能。
-(void)loadShowDetailsTabBarController
{
ConceptViewController *conceptViewController;
CastViewController *castViewController;
ShowDetailsFeedbackViewController *showDetailsFeedbackViewController;
PromosViewController *promoViewController;
UIImage *conceptBtn = [UIImage imageNamed:@"showdetailstabidle_btn_bg.png"];
UIImage *conceptBtnSelected = [UIImage imageNamed:@"showdetailstabselected_btn_bg.png"];
UIImage *castBtn = [UIImage imageNamed:@"showdetailstabidle_btn_bg.png"];
UIImage *castBtnSelected = [UIImage imageNamed:@"showdetailstabselected_btn_bg.png"];
UIImage *feedbackBtn = [UIImage imageNamed:@"showdetailstabidle_btn_bg.png"];
UIImage *feedbackBtnSelected = [UIImage imageNamed:@"showdetailstabselected_btn_bg.png"];
UIImage *promoBtn = [UIImage imageNamed:@"showdetailstabidle_btn_bg.png"];
UIImage *promoBtnSelected = [UIImage imageNamed:@"showdetailstabselected_btn_bg.png"];
conceptBtn = [conceptBtn imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
conceptBtnSelected = [conceptBtnSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
castBtn = [castBtn imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
castBtnSelected = [castBtnSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
feedbackBtn = [feedbackBtn imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
feedbackBtnSelected = [feedbackBtnSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
promoBtn = [promoBtn imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
promoBtnSelected = [promoBtnSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
conceptViewController = [[ConceptViewController alloc] initWithNibName:@"ConceptViewController_iPad" bundle:nil];
castViewController = [[CastViewController alloc] initWithNibName:@"CastViewController_iPad" bundle:nil];
showDetailsFeedbackViewController = [[ShowDetailsFeedbackViewController alloc] initWithNibName:@"ShowDetailsFeedbackViewController_iPad" bundle:nil];
promoViewController = [[PromosViewController alloc] initWithNibName:@"PromosViewController_iPad" bundle:nil];
}
else if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
conceptViewController = [[ConceptViewController alloc] initWithNibName:@"ConceptViewController" bundle:nil];
castViewController = [[CastViewController alloc] initWithNibName:@"CastViewController" bundle:nil];
showDetailsFeedbackViewController = [[ShowDetailsFeedbackViewController alloc] initWithNibName:@"ShowDetailsFeedbackViewController" bundle:nil];
promoViewController = [[PromosViewController alloc] initWithNibName:@"PromosViewController" bundle:nil];
}
conceptViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"CONCEPT" image:conceptBtn selectedImage:conceptBtn];
castViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"CAST" image:castBtn selectedImage:castBtnSelected];
showDetailsFeedbackViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"FEEDBACK" image:feedbackBtn selectedImage:feedbackBtnSelected];
promoViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"PROMO" image:promoBtn selectedImage:promoBtnSelected];/**/
UITabBarController *showDetailstabVC = [[UITabBarController alloc] init];
showDetailstabVC.viewControllers = [NSArray arrayWithObjects:conceptViewController,castViewController,showDetailsFeedbackViewController,promoViewController, nil];
showDetailstabVC.view.frame = CGRectMake(0, 250, screenSize.width, screenSize.height-250);
self.view.window.rootViewController = showDetailstabVC;
[self.view addSubview:showDetailstabVC.view];
}
請讓我知道我的代碼是否正確?
我可以查看我想要的內容。
但是現在的問題是,當我在使用TabBar按鈕我得到以下錯誤,請點擊:
EXC_BAD_ACCESS(代碼= exc_i386_gpflt)
不是在調試屏幕,應用程序停止給出的錯誤在的main.m以下行:
返回UIApplicationMain(的argc,argv的,零,NSStringFromClass([AppDelegate類]));
好吧,我相信這是一個笑話或你的巨魔。如何在上帝的愛中解釋任何事情? –
@simon我對圖像的內容進行了模糊處理,並在上傳的模糊圖像的圖像下面放置瞭解釋。請閱讀圖像的說明。 –
我做了,它沒有什麼意義 –