为啥嵌入 UINavigationController 时不再显示 UITableView

Posted

技术标签:

【中文标题】为啥嵌入 UINavigationController 时不再显示 UITableView【英文标题】:Why does not it display UITableView anymore when embed UINavigationController为什么嵌入 UINavigationController 时不再显示 UITableView 【发布时间】:2015-03-31 08:20:36 【问题描述】:

我是 ios 开发新手。我现在正在学习 Swift。我目前有一个问题,即添加导航视图控制器后,我的 tableView 不再显示任何内容。我不明白为什么。请高手帮帮我!!

class AppDelegate: UIResponder, UIApplicationDelegate 

var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    // Override point for customization after application launch.

    let mainVC = ViewController()
    let navigationVC = UINavigationController(rootViewController: mainVC)
    window?.rootViewController = navigationVC;
    window?.makeKeyAndVisible()
    return true

ViewController 中的代码:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 
@IBOutlet var myTable: UITableView!
var items: [String] = ["Date Picker","List of Data","Slider","Show Image", "Web Display"];

override func viewDidLoad() 
    super.viewDidLoad()

    NSLog("Hello World at console");
    var nib = UINib(nibName: "ListCell", bundle: nil)
    myTable?.registerNib(nib, forCellReuseIdentifier: "ListCell")
    // Do any additional setup after loading the view, typically from a nib.

【问题讨论】:

【参考方案1】:

如果您使用故事板,请使用它的实例化方法,并在故事板中设置控制器的故事板ID

YourController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ControllerStoryboardId"];

如果是xib文件

YourController *vc = [[YourController alloc] initWithNibName:@"YourController" bundle:[NSBundle mainBundle]];

【讨论】:

以上是关于为啥嵌入 UINavigationController 时不再显示 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

UIView 只嵌入在 UINavigationController 和 UITabBarController 中,为啥?

为啥嵌入 UINavigationController 时不再显示 UITableView

为啥 timm 视觉变压器位置嵌入初始化为零?

为啥 textarea 不支持 iframe 嵌入? [复制]

为啥要用嵌入式软件

为啥我们需要像 Lua 这样的嵌入式编程语言?