У меня есть TableViewController внутри TabViewController внутри NavigationController с навигацией название и пункт, как показано здесь:
TableViewController внутри TabViewController внутри NavigationViewController не показывать навигацию заголовок и пункт во время выполнения, но показывает в раскадровка
На время выполнения , панель навигации есть, но заголовок и элемент добавления не показаны, как показано здесь: (не обращайте внимания на белую пустоту, на моем устройстве ее работа, но не в симуляторе - я спросил об этом в stackOverflow, но все равно нет раствор)
Другой элемент TabBar указывает на обычный UIView, который также не отображает название панели навигации и позицию панели.
Я попытался добавить еще один UIView, который будет посредником между TabBarViewController и TableViewController, и это устранило проблему, но это заставило меня потерять функциональность TabBar в моем TableViewController. Я попытался указать на панель навигации из моего TableViewController, но такие методы, как «viewDidAppear» или navigationBar Class, оттуда недоступны, поскольку он действует как контроллер для tableView.
TableViewController Класс
import UIKit
import Parse
import ParseUI
class MeetsTableViewController: PFQueryTableViewController {
// Initialise the PFQueryTable tableview
override init(style: UITableViewStyle, className: String!) {
super.init(style: style, className: className)
//self.tableView.contentInset = UIEdgeInsetsZero;
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// Configure the PFQueryTableView
self.parseClassName = "Meets";
self.pullToRefreshEnabled = true;
self.textKey="city";
self.paginationEnabled = false;
}
// Define the query that will provide the data for the table view
override func queryForTable() -> PFQuery {
let query = PFQuery(className: "Meets");
query.orderByDescending("numberOfComming");
return query;
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("MyCell") as! CarTableViewCell!;
if cell == nil {
cell = CarTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "MyCell");
}
if let cityName = object?["city"] as? String{
cell?.meetName?.text = "מפגש ב\(cityName)";
}
if let address = object?["address"] as? String{
cell?.meetAddress?.text = address;
}
if let date = object?["date"] as? String{
cell?.meetDate?.text = date;
}
if let time = object?["time"] as? String{
cell?.meetTime?.text = time;
}
if let people = object?["numberOfComming"] as? Int{
cell?.peopleAttending?.text = "\(people)";
}
if let thumbnail = object?["meetImg"] as? PFFile {
thumbnail.getDataInBackgroundWithBlock{
(imageData, error) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.meetImage.image = image
}
}
}
return cell;
}
//delegate method
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
moveToDetail();
}
func moveToDetail(){
let meetDetail=storyboard?.instantiateViewControllerWithIdentifier("meet") as! MeetDetailViewController;
if let indexPath = self.tableView.indexPathForSelectedRow {
let row = Int(indexPath.row);
meetDetail.currentObject = (objects?[row] as? PFObject)
}
navigationController?.showViewController(meetDetail, sender: self);
}
}
TabViewController Класс
import UIKit
class MeetingsTabViewControllerViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
// set red as selected background color
let numberOfItems = CGFloat(tabBar.items!.count)
let tabBarItemSize = CGSize(width: tabBar.frame.width/numberOfItems, height: tabBar.frame.height)
tabBar.selectionIndicatorImage = UIImage.imageWithColor(UIColor(hexString: "#8c332b")!, size: tabBarItemSize).resizableImageWithCapInsets(UIEdgeInsetsZero);
tabBar.backgroundImage = UIImage.imageWithColor(UIColor(hexString: "#c1463e")!, size: tabBarItemSize).resizableImageWithCapInsets(UIEdgeInsetsZero);
// item selected color
tabBar.tintColor = UIColor.whiteColor();
// remove default border
tabBar.frame.size.width = self.view.frame.width + 4;
tabBar.frame.origin.x = -2;
}
}
extension UIImage {
class func imageWithColor(color: UIColor, size: CGSize) -> UIImage {
let rect: CGRect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContextWithOptions(size, false, 0);
color.setFill();
UIRectFill(rect);
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
}
NavigationViewController Класс
import UIKit
class MeetsNavigationViewController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
Можете ли вы добавить пример кода? Поэтому мы можем помочь вам лучше. – Karlos
Несомненно, только что добавил, спасибо –