2 wangyaninglm wangyaninglm 于 2015.06.29 15:15 提问

ios swift 多个界面,viewcontroller应该怎么写呢?

ios swift 多个界面,viewcontroller应该怎么写呢?或者说怎么控制?不用storyboard

3个回答

zhao18933
zhao18933   2015.06.29 19:20
已采纳

你是说不同界面的跳转吗?
跳转可以这样写

         let viewCro = ViewController.init()
        // 假如用xib的话,用下面这句初始化
//        let viewCro = ViewController.init(nibName:nibName, bundle:bundle)
        if (self.navigationController != nil) {
            self.navigationController!.pushViewController(viewCro, animated: true)
        } else {
            self.presentViewController(viewCro, animated: true, completion: nil)
        }
zhao18933
zhao18933 回复shiter: 你的动态生成是根据服务器数据创建一个列表或者是个人主页那样的页面吗? 如果这样可以去看看一些demo,code4app上面很多,这些都是基础知识,三言两语很难说得完
2 年多之前 回复
wangyaninglm
wangyaninglm 回复sun_ljz: 意思对应一个viewcontroler,那我是根据服务器内容,动态生成页面,这些viewcontroler应该放到那里面呢?就是这块的代码应该写到那里?
2 年多之前 回复
zhao18933
zhao18933 回复shiter: 通常是一个页面对应一个类
2 年多之前 回复
wangyaninglm
wangyaninglm 回复sun_ljz: 请问一下一个页面对应一个类还是什么?
2 年多之前 回复
zhao18933
zhao18933 回复shiter: 你的意思是纯代码生成界面是吧?你自己创建一个UIViewController的子类,然后在它的viewDidLoad方法中加载你需要的界面元素,这里你可以创建UIButton或者其他控件,然后加入到self.view中,建议了解一下UIViewController的生命周期,以及如何用代码编写界面
2 年多之前 回复
wangyaninglm
wangyaninglm 不是跳转,是多个界面,不用storyboard怎么生成?
2 年多之前 回复
a845116
a845116   2016.05.24 19:29

虽然相隔那么长的时间了,自己也在学习,在说也有很多新手在学习,希望这个代码能帮助学习

在AppDelegate文件下面的 application 方法加上这个代码
//创建window
var window: UIWindow?
window = UIWindow(frame: UIScreen.mainScreen().bounds);
window?.backgroundColor = UIColor.whiteColor();
let mainTabController = MainViewController()
window?.rootViewController = mainTabController;
//显示窗口
window?.makeKeyAndVisible();
return true

---------------------------
新建一个文件名为MainViewController .swift 文件
import UIKit
class MainViewController: UITabBarController {

override func loadView() {
    super.loadView();


    addChildViewControllers();
}

func addChildViewControllers() {
    addChildNavAndTabBar("CartTableViewController",title: "购物车",imageName: "tabbar_cart");
    addChildNavAndTabBar("MemberController",title: "我",imageName: "tabbar_fans");
}
/**
 初始化子控制器

 :param: childControllerName 需要初始化的子控制器
 :param: title           初始化的标题
 :param: imageName       初始化的图片
 */
func addChildNavAndTabBar(childControllerName: String,title:String,imageName:String) {
    //动态获取命名空间
    let namespace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String;

    let cls:AnyClass = NSClassFromString(namespace + "." + childControllerName)!;

    // 告诉编译器真实类型是UIViewController
    let vcCls = cls as! UIViewController.Type;

    let vc = vcCls.init();


    let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor(red: 255/255, green: 105/200, blue: 0.0/255, alpha: 1.0)]

    //创建底部导航
    vc.title = title;
    vc.tabBarItem.setTitleTextAttributes(titleDict as? [String : AnyObject], forState: UIControlState.Highlighted)
    vc.tabBarItem.image = UIImage(named: imageName);
    vc.tabBarItem.selectedImage = UIImage(named: imageName + "_highlighted");

    // 创建导航控制器
    let nav = UINavigationController()
    nav.addChildViewController(vc)

    addChildViewController(nav)


}

}

wangyaninglm
wangyaninglm 非常感谢
一年多之前 回复
wangyaninglm
wangyaninglm   Ds   Rxr 2015.06.29 20:04

不是跳转,是多个界面,不用storyboard怎么生成?

sinat_15209251
sinat_15209251 我跟你相反只会用代码写界面。不会用storyboard。求教怎么用storyboard快速开发。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片