【问题标题】:Add a UITabbarControler in UIScrollView in iphone?在iphone的UIScrollView中添加一个UITabbarControler?
【发布时间】:2012-11-04 07:38:58
【问题描述】:

我在 UIViewController 中创建了一个 UIScrollView 。现在我想向它添加一个 UITabBarController 。但是当我这样做时,我看不到 TabBarController 添加到它..

我已经写了这段代码

[testscroll setScrollEnabled:YES];
[testscroll setContentSize:CGSizeMake(320,800)];
FirstViewController *first = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
first.title=@"Search";
UserProfile *second=[[UserProfile alloc]initWithNibName:@"UserProfile" bundle:nil];
second.title=@"My Profile";

UserActivities *third=[[UserActivities alloc]initWithNibName:@"UserActivities" bundle:nil];
third.title=@"My Activities";
LogOut *logout=[[LogOut alloc]initWithNibName:@"LogOut" bundle:nil];
logout.title=@"Sign Out";
NSArray *viewArray= [NSArray arrayWithObjects:first,second,third,logout, nil];
tabBarController=[[UITabBarController alloc] init];
[tabBarController setViewControllers:viewArray animated:NO];
[self presentModalViewController:tabBarController animated:NO];  

我在第五个ViewController 中添加了这个。我可以看到添加了 UIScrollView 和一些标签和文本字段,但没有添加 TabBarController。我哪里出错了..?

【问题讨论】:

    标签: iphone objective-c cocoa-touch uiscrollview uitabbarcontroller


    【解决方案1】:

    据我所知,您正在创建一个标签栏控制器,然后以模态方式呈现它:

    NSArray *viewArray= [NSArray arrayWithObjects:first,second,third,logout, nil];
    tabBarController=[[UITabBarController alloc] init];
    [tabBarController setViewControllers:viewArray animated:NO];
    [self presentModalViewController:tabBarController animated:NO];  
    

    它没有出现在scrollView 中,因为您没有以任何方式“连接”两者。

    如果您希望标签栏控制器出现在滚动视图中,请将其作为子视图添加到后者:

    [testscroll setScrollEnabled:YES];
    [testscroll setContentSize:CGSizeMake(320,800)];
    ...
    [testscroll addSubview:tabBarController.view];
    

    (我假设tabBarController 是一个属性,并且滚动视图以某种方式显示)

    【讨论】:

    • 实际上我尝试了ut ur代码,这里firsttabbar项设置为默认值,FirstViewController的所有内容都显示在fifthViewController上。我想要的是我只想在FifthViewController的底部添加一个TabBarController有四个标签栏项目,默认没有选择标签栏项目,因为 FifthtabViewController 包含一些内容。
    • 你看到的是你如何定义你的标签栏。它包含 4 个控制器:第一个、第二个、第三个、注销。我对您的 FifthtabViewController 一无所知,因为您没有显示任何内容,但如果您希望它显示在标签栏中,您最好像其他控制器一样将其添加到标签栏控制器。从您的评论来看,您似乎正在尝试使用标签栏控制器,将其视为UITabBar
    • 我有 FifthViewController(AppntmntSuccess) 上面有一些数据。我想在该 viewController 的底部显示一个标签栏(搜索、配置文件、活动、登录),并且不应该选择 tabBaritem 作为默认值.在我的情况下,发生的事情是第一个tabbaritem被选择为默认值,因此它的所有内容(FirstViewController)都显示或与FifthViewController的内容重叠。我怎样才能制作一个TabBarController,以便没有选择tabbar项作为默认值。 .?
    • 您可能会尝试使标签栏控制器中的 所有 控制器透明(我的意思是它们的视图),以便您可以看到它们背后的内容。但这将是 UITabBarController 的一个非常奇怪的用法。可能您正在寻找的是将UITabBar 添加到您的 FifthViewController 然后管理它的事件。
    • K 在你的评论之后我已经通过界面生成器添加了一个 UITabBar 并将其代表设置为 View 。但我看不到它添加了。你能告诉我吗?
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多