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

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

0

3个回答

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

         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)
        }
0
zhao18933
sun_ljz 回复shiter: 你的动态生成是根据服务器数据创建一个列表或者是个人主页那样的页面吗? 如果这样可以去看看一些demo,code4app上面很多,这些都是基础知识,三言两语很难说得完
接近 4 年之前 回复
wangyaninglm
shiter 回复sun_ljz: 意思对应一个viewcontroler,那我是根据服务器内容,动态生成页面,这些viewcontroler应该放到那里面呢?就是这块的代码应该写到那里?
接近 4 年之前 回复
zhao18933
sun_ljz 回复shiter: 通常是一个页面对应一个类
接近 4 年之前 回复
wangyaninglm
shiter 回复sun_ljz: 请问一下一个页面对应一个类还是什么?
接近 4 年之前 回复
zhao18933
sun_ljz 回复shiter: 你的意思是纯代码生成界面是吧?你自己创建一个UIViewController的子类,然后在它的viewDidLoad方法中加载你需要的界面元素,这里你可以创建UIButton或者其他控件,然后加入到self.view中,建议了解一下UIViewController的生命周期,以及如何用代码编写界面
接近 4 年之前 回复
wangyaninglm
shiter 不是跳转,是多个界面,不用storyboard怎么生成?
接近 4 年之前 回复

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

在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)


}

}

1
wangyaninglm
shiter 非常感谢
大约 3 年之前 回复

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

0
sinat_15209251
sinat_15209251 我跟你相反只会用代码写界面。不会用storyboard。求教怎么用storyboard快速开发。
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用Swift完成不同View Controller之间的切换
之前用objective-c开发时,页面之间的切换很容易。其实用swift没有很大的变化,如果你是用storyboard完成的界面,基本上是同样的方式,只不过在代码部分写成swift风格的就行了。 今天在实验开发一个简单的小程序时,却遇到了一些bug,后来还是求助stackoverflow上的大神解决了问题,在此做下记录。 我的程序结构是这样的,在一个页面A中有个按钮,然后点击按钮以后,切换到
ios swift 多个界面,viewcontroller应该怎么写呢? 纯代码
不用storyboard怎么生成多个界面,求个代码例子看一下?rn见了swift工程,没发现代码是何处开始运行的,rn想代码创建多个页面,不知道viewcontroller怎么创建,rn好像只有一个啊
如何判断UIViewController是使用pop,dismiss返回到上级视图控制器
当我们自定义继承UIViewController视图控制器的基类视图控制器时,会新增返回到上级的视图控制器方法,于是就要区分,返回时使用 pop 的方法,还是使用dismiss 的方法了。 方法1 - (void)backPreviousController { if (self.presentingViewController) { [self dismis
iOS 不同界面(ViewController)之间传值
今天遇到一个问题:如何在多个viewController 之间进行传值,我有A、B、C三个 view,三个 view 均在同一 Navigation Controller 容器中,关系如下图: 在 AB 或 BC 之间传值较为熟悉,可以选择的方式有:delegate, block, 属性设置 等。但A到C之间传值之前没有实现过,查资料后找到几种选择:1.userDefault 或
iOS 返回UIViewController控制器是否刷新数据
  //联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄          QQ群:807236138  群称:iOS 技术交流学习群 一、概念     * isKindOfClass(对象方法)   * isMemberOfClass(对象方法)   * isSubclassOfClass(类方法)   1.共同点:   * isKindOfClass与isMem...
swift下viewcontroller跳转和关闭当前页面
1.跳转    var nib=NibViewController()//需要跳转的viewcontroller self.presentViewController(nib, animated:true, completion: nil) 2.关闭当前页面 self.dismissViewControllerAnimated(true, completion:nil)
IOS—两个ViewController间传值(逆向传值)
上一篇 两个ViewController间传值中说明了如何从A传值到B,这次要讲的是如何从A进入B,在B输入值后回传给A,这类似于Android中的利用Activity的onActivityResult回调方法实现两个Activity之间的值传递,那么在IOS中如何实现这个功能呢,答案是使用Delegate(委托协议)。 首先来看看工程结构图: 其中有两个ViewContr
ios-swift之弹出一个背景半透明的UIViewController
let viewController=storyboard.instantiateViewControllerWithIdentifier("对应要启动的ViewController名字") as 对应要启动的ViewController名字 viewController.view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha...
iOS 连续多次present 之后,想回到最初的viewController
// The view controller that was presented by this view controller or its nearest ancestor. 此视图控制器的视图控制器或其最近的祖先。 @property(nullable, nonatomic,readonly) UIViewController *presentedViewControl
纯代码实现布局的UIViewController跳转到带storyboard布局的UIViewController
需求:需要跳转到用storyboard实现布局的UI ViewController。 实现代码: UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; SettingViewController * controller = [storyboard in
iOS 判断当前页面是哪一个Viewcontroller
-(UIViewController*)atPersentViewController:(UIViewController*)vc {         if (vc.presentedViewController) {                          return [self atPersentViewController:vc.presentedViewContr
在两个ViewController之间通信的方式(转帖整理)
一般方法 1)采用代理模式 子viewController设计代理协议,定义协议接口,父viewController 实现协议接口,实现子viewController 退出时将相关数据更新到父视图。 常用程度 ***** 五星 2)采用ios的消息机制 父viewcontroller注册消息,子viewcontroller发送消息,触发父viewcontroller的消息处理。 常用程
《Swift UIViewController 的切换跳转动画和 UIToolBar 的详细使用》
/*        《Swift   UIViewController 的切换跳转动画和 UIToolBar 的详细使用》 */ /*     视图控制器间的跳转,在现在开发中还占有很大分量。但是,许多App 却不适用控制器间的跳转动画,今天我们还是要学习的。还有,在开发过程中,被我们忽视的工具栏的使用说明。 */ //  Created by
iOS 利用visibleViewController和topViewController获取当前显示的页面区别
UINavigationController 中有visibleViewController和topViewController visibleViewController 当前显示的控制器topViewController 是某个导航栈的栈顶视图visibleViewController跟导航栈没有关系,只是当前显示的控制器,也就是说任意一个导航的visibleViewContro
ios中界面的跳转presentedViewController 、pushViewController及实现返回关闭当前页面
基本介绍 1、有NavigationController导航栏的话,使用[self.navigationColler pushViewController:animated:];和[self.navigationController popViewControllerAnimated:];来进行视图切换。pushViewController是进入到下一个视图,popViewController是...
如何在多次presentViewController后直接返回最底层界面
presentViewController是经常会用到的展现ViewController的方式,而显示和去除presentViewController也是很简单的,主要是下面两个方法: - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag com
iOS开发之一篇文章学会页面传值详解 - 十种页面传值方法大全 swift 版本
1、最简单AB面正向传值 效果如下: 最简单的正向传值.gif 首先我们先创建两个视图控制器ViewController.swift和SubViewController.swift 设置第一个界面 首先在第一个界面创建好一个TextFeild,用来写我们要传的文字 import UIKit class ViewController: UIViewControlle
连续 dismiss (模态取消) 两个或者多个viewController
做项目是遇到一个场景:VC presentViewController(模态弹出)到VC1;VC1 又 presentViewController 到VC2 ;此时,想从VC2 直接dismiss 到VC1。 改怎么做? 两个方法: 方法一:通知法, 如下图,在VC2里dismiss 结束后 里发个通知: 在VC1 的viewWil
Swift编程(二):UIViewController之间的传值以及闭包回调传值
知识背景: 在日程开放中页面传值是最为常见的,(具体动画特效见我的我的GitHub ) 效果图 学习目标: 学习闭包的使用学习页面传值FirstViewController --> SecondViewController通过闭包回调将值传回:SecondViewController --> FirstViewController 步骤 1. 创建两个UIViewCon
ViewController无法自动销毁
1.  block 中不要使用 self,改用weakself     错误        self.tableView.mj_header= [MJRefreshNormalHeader headerWithRefreshingBlock:^{              [self pullDownAction];     }];     正确       WEAKSELF
IOS---自动初始化各个ViewController(可用于UITableView中的跳转)
直接上代码//设置各个ViewController的名字 NSString *viewControllerClassName = [NSString stringWithFormat:@"ALiOSDemo%@ViewController", @(indexPath.row + 1)]; Class viewControllerKlass = NSClassFromString(vi
iOS开发——纯代码界面(UIViewController和文本类控件)
一、添加视图控制器(UIViewController)创建一个ViewController类继承UIViewController ViewController.m做如下修改- (void)viewDidLoad { [super viewDidLoad]; //为了方便观察,设置背景颜色为蓝色 self.view.backgroundColor = [UIColor blue
Swift - 用装有控制器name的数组for循环批量创建控制器(string转UIViewController)
在Object-C中我们在创建自定义tabbar时会经常把控制器类名(如:HomePageViewController)放在数组中,然后通过for循环批量创建并转换类型为UIVIewController,但是在Swift中这一写法太过复杂,好在最后博主解决了这个问题,现在拿出来给大家做参考: Object-C中这么写的:_vcArray=[NSArray arrayWithObjects:@"V
Storyboard中ViewController加载的四种方式
1、storyboard的初始化ViewController,通过方法instantiateInitialViewController. 2、通过StoryboardID加载,通过方法:instantiateViewController(withIdentifier:). 3、通过关系:比如TabBarVC、NavigationVC这类的导航关系 3、通过segue的触发。
理解分类(category)和类扩展(extension),扩展或继承像UIViewController经常用的类的变量和方法
到底什么是分类category?什么是类扩展extension呢?他们分别用在什么场合,各有哪些不可被替代的特点呢?当学习熟悉,使用多了之后,你会发现这真的是很出色实用的两种扩展类。 分类运用场景举例:想要收集每个页面的启动时间。 问题1: 项目中已经有上百个页面了,如果一个一个的加,浪费时间不说,以后增加了新页面,还需要添加方法。 解决方法: 我们可以发现页面都继承
IOS开发-在UIViewController中锁定竖屏
转自:http://www.jianshu.com/p/6ebfc7294e13 因为APP中有视频播放,所以不能全局锁定,只能在一些实在不想横屏的Controller中进行锁定代码如下: override func shouldAutorotate() -> Bool { return false } override func supportedInterfa
怎么判断某一个viewController当前是否显示
可以试试这样: - (UIViewController*)topViewController { return [self topViewControllerWithRootViewController:[UIApplication sharedApplication].keyWindow.rootViewController]; } - (UIViewControlle...
Swift:界面传值指南
前言好久没有更新博客了,过了一个年,长胖了不少。昨天把Swift语言的传值方法整理了一下,今天呢,就把整理的东西形成文章以供大家参考,不到之处,欢迎各位提点。在去年,我整理了一篇OC版本的界面传值文章,如果你想要了解OC实现形式,欢迎前往阅读。通知传值通知可实现任意界面之间的数据传递,但必须满足一个条件,就是必须保证在发送通知的时候监听者已经存在。而通知的注册主要通过NSNotificationCe
ios -- swift -- 侧滑返回时 页面卡住不动
// // Part 001//  let purchaseOrderBillVC = PurchaseOrderBillViewController() let purchaseOrderBillNav = BaseNavigationController.init(rootViewController: purchaseOrderBillVC) purchase
怎么强制一个UIViewController页面从竖屏进入横屏
// 在横屏的ViewController init做如下修正 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
Swift和OC控制器互相跳转
碰到一个swift的项目,博主要用OC来进行重构,但是考虑到时间的问题,里面几大功能模块打算直接抑制到项目里,这里要考虑Swift和OC之间界面的互相跳转,也是混编。 Swift中使用OC使用桥接文件,可以查看http://blog.csdn.net/codingfire/article/details/51880516在OC中使用Swift文件博主还真不知道,查了下,具体说明如下:假设我有一个类
viewController调试不走deinit方法(个人记录)
原因:闭包里面引用了self,但是未声明 [ unowned self ]
iOS 在viewController中监听Home键触发以及重新进入界面的方法
第一步: 创建2个NSNotificationCenter监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil]; //
使用segue进行页面跳转
在iOS开发中,可以在两个controller之间添加segue进行页面之间的跳转。本文主要说明segue的基本使用方法。使用segue从一个页面跳转到另一个页面 新建一个Single View Application,命名为TestSegue,在storyboard中添加一个ViewController,同时添加一个SecondViewController类作为这个ViewController到实
ios监听程序回到前台,viewController获取事件
法在接下来的随笔中实现) //增加监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appHasGoneInForeground:)
判断当前viewcontroller是push还是present的方式显示的
项目过程中有时候遇到同一页面不同的弹出方式push 和模态,如果自定义返回按钮的话,需要进行判断上一级是pop回去还是dismiss NSArray *viewcontrollers=self.navigationController.viewControllers; if (viewcontrollers.count>1) { if ([viewcontroll
iOS如何创建多视图及视图间切换(学习记录)
思路:1.需创建TabbarController 标签栏控制器的容器2.在AppDelegate指定 self.window 标签栏控制器容器3.在控制器中通过pushViewController切换到另一个视图代码:1.需创建TabbarController 标签栏控制器的容器TabbarController.h 文件 代码#import<UIKit/UIKit.h> @inter...
swift4--页面跳转的几种方法
首先要在appDelegate里添加导航视图控制器navigationColler func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { ...
iOS编写最简单的界面切换应用
以下是在iOS中最简单的界面切换示例。使用了多个Controller,并演示Controller之间在切换界面时的代码处理。 实现的应用界面:   首先,创建一个window-based application,即:     使用window-base application的目的是,尽量从最基本的情况下说明程序的编写过程。项目创建好后,即可以编译运行,执行结果是白屏页面:...
swift第一个ios项目,纯代码编程
最近看了看网上关于swift的一些基础介绍,但是zen
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java怎么学习呢 应该怎么学习python