如何在Swift中的UITableViewController中创建导航栏?

时间:2014-07-10 01:38:34

标签: ios swift

我是IOS的新手,

我想向UINavigationBar添加UITableViewController,我试过这个:

var navBar: UINavigationBar = UINavigationBar(frame: CGRect(x:0, y:0, width:320, height:80))

然后,

self.view .addSubview(navBar)

谢谢

4 个答案:

答案 0 :(得分:15)

您无法像这样简单地将NavigationBar添加到UITableViewController

拥有UINavigationControllerNavigationBar的最简单方法是从Storyboard中执行此操作。

步骤: -

  1. UITableViewController 对象从对象库拖到故事板。

  2. 突出显示 UITableViewController ,转到编辑 - >嵌入 - >导航控制器,如下面的屏幕截图: - enter image description here

  3. 转到文件 - >新 - >文件.. - > iOS - > Cocoa Touch Class ,并创建一个自定义TableViewController类,如下面的屏幕截图: - enter image description here

  4. 最后,返回故事板并突出显示UITableViewController对象。在身份检查器下,选择您刚刚创建的自定义类,如下面的屏幕截图所示: - enter image description here
  5. 您可以使用自定义类文件执行任何操作。如果需要,您还可以添加自定义UINavigationController类,并且可以将自定义类附加到故事板内的对象。

答案 1 :(得分:5)

如果只是通过导航栏显示模态 UITableViewController的情况,那么从代码中执行此操作的最简单方法是在UINavigationController中显示{ {1}} UITableViewController

呈现视图控制器:

rootViewController

目标模态UITableViewController:

let sourceSelectorTableViewController = SourceSelectorTableViewController()
let navigationController = UINavigationController(rootViewController: sourceSelectorTableViewController)

self.presentViewController(navigationController, animated: true, completion: nil)

答案 2 :(得分:2)

最好的解决方案是提出

  

的UITableViewController

as

  

的UINavigationController

        let topicsList = TopicsListViewController()
        let topicsListNavContrl = UINavigationController(rootViewController: topicsList)

        presentViewController(topicsListNavContrl, animated: true) { () -> Void in
            print("completed")
        }

答案 3 :(得分:-1)

您可以通过编程方式执行此操作。

 DataTableViewController *vc = [[DataTableViewController alloc] initWithStyle:UITableViewStylePlain];

    UINavigationController  *nav = [[UINavigationController alloc] initWithRootViewController:vc];


    [self presentViewController:nav animated:YES completion:nil];