标签: viewdidload

iOS 6中的viewDidLoad调用一次?

抬头:这个问题与最近的弃权有关viewDidUnload.我已经看到围绕这个主题的"伟大"和合乎逻辑的答案,但显然他们被证明是错误的.谨慎行事,如您所见,这个话题非常混乱.

来自Apple的文档:

但是,当视图未附加到窗口时,系统会自动释放这些昂贵的资源.大多数视图使用的剩余内存足够小,系统自动清除和重新创建视图层次结构是不值得的.

所以...我可以安全地假设在iOS 6中,只要我没有将viewController的视图显式设置为nil(手动卸载),viewDidLoad在应用程序的整个生命周期内,只会为任何已分配的viewController实例调用一次?

uikit viewdidload ios ios6

9
推荐指数
1
解决办法
1508
查看次数

如何在Swift中创建全局变量?

我正在尝试设置一个全局变量.在我的例子中,只是一个布尔标志,指示是否第一次呈现视图:

var initialLoadFlag: Bool = true
Run Code Online (Sandbox Code Playgroud)

在显示视图后,我想将此标志设置为false:

var initialLoadFlag: Bool = false
Run Code Online (Sandbox Code Playgroud)

然后检查它:

if initialLoadFlag {
   showWelcomeMessage() 
}
Run Code Online (Sandbox Code Playgroud)

所以,我想创建initialLoadFlag一个全局变量.在哪里以及如何?我试过了:

  • viewDidLoad我的视图控制器区域
  • application()我的AppDelegate.swift文件中的方法中
  • AppDelegate课堂上

没运气.我收到一条Use of unresolved identifier 'initialLoadFlag'错误消息

(注意:我意识到在这个问题中,我背叛了我对Swift如何处理范围的无知.请原谅我......我正处于截止日期,并且仍然对语言不熟悉.)

谢谢你的帮助.

xcode flags global viewdidload swift

9
推荐指数
2
解决办法
4万
查看次数

iOS中视图控制器生命周期和视图生命周期有什么区别?

阅读关于iOS开发的几本教程和书籍我经常遇到一些术语:UIViewController生命周期和UIView生命周期.我很感兴趣:这两个术语之间是否存在实际差异?看苹果的文档我发现,如方法viewDidAppear或者loadView是视图控制器的生命周期的一部分,但我认为这是比较正确的,指他们作为视图生命周期和方法,如initWithNibNamedealloc作为控制器的生命周期.或者没有这样的分离,当有人谈到观看生命周期时,他实际上意味着UIViewController生命周期?

objective-c uiviewcontroller uiview viewdidload ios

9
推荐指数
2
解决办法
8995
查看次数

完成处理程序在viewDidLoad中不起作用?

我在我的应用程序中使用此来设置横幅广告.我试图通过解析JSON来获取链接.

图像未显示在slideshow视图中.如果我按下slideshow视图,之后一切正常.我认为我的完成处理程序存在一些问题.但我还是解决不了:)

@IBOutlet weak var slideshow: ImageSlideshow!
var transitionDelegate: ZoomAnimatedTransitioningDelegate?
var Banner : [AlamofireSource] = []

override func viewDidLoad() {
        super.viewDidLoad()
        Banners { (imagesource) in
            if imagesource != nil {
                self.bannershow()
            }
        }
  }

    func Banners(completionHandler: ([AlamofireSource]?) -> ()) -> (){
        Alamofire.request(.GET, "http://46.420.116.11/mobileapp/gps/api.php?rquest=get_banners")
            .responseJSON{ response in
                if let data = response.result.value{
                    let json = JSON(data)
                    let count = json["image_path"].count
                    for index in 0...count-1 {
                        let image :String = json["image_path"][index].stringValue
                        let source : AlamofireSource = …
Run Code Online (Sandbox Code Playgroud)

viewdidload ios completionhandler swift

9
推荐指数
1
解决办法
962
查看次数

initWithNibName VS viewDidLoad

我一直试图理解我应该使用viewDidload几个小时:当我应该使用initWithNibName:来设置我的viewController的属性.

例如,我正在使用TableViewController,并且我在initWithNibName中设置了它的所有属性(例如backgroundColor,separateColor,工具栏项).这是正确的方法吗?

如果有人能够启发我.

谢谢

objective-c viewdidload

8
推荐指数
1
解决办法
5382
查看次数

如何在viewDidAppear中向UIView添加动画?

我试图向viewDidLoad和viewDidAppear添加动画,但它不起作用:

- (void)viewDidAppear:(BOOL)animated{
 [UIView beginAnimations:@"transition" context:NULL];
 [UIView setAnimationTransition:110 forView:self.view cache:YES];
 [UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)

为什么?

iphone xcode uiview viewdidload viewdidappear

7
推荐指数
2
解决办法
1万
查看次数

ios - 以编程方式编码的UIButton未在我的视图中显示

.

你好,

我正在尝试以编程方式将UIButton和其他项添加到我的UIViewController中,并从我在其他SO问题中阅读和看到的内容,我应该使用以下代码在正确的轨道上:

- (void)viewDidLoad
{
[super viewDidLoad];



UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];    
backButton = [[UIButton alloc] init];
backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(10, 25, 150, 75);
backButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
backButton.titleLabel.text = @"Back"; 
[self.view addSubview:backButton];


// Do any additional setup after loading the view.
}
Run Code Online (Sandbox Code Playgroud)

现在代码放在viewDidLoad方法中并且它没有出现,这引出了我的问题 - 我做错了什么?

当我想要更改背景的颜色并放入viewDidLoad时,它可以正常工作.

干杯杰夫

uibutton viewdidload ios

7
推荐指数
1
解决办法
2万
查看次数

在Swift中没有导航控制器的viewDidLoad()中执行segue

我有三个视图(视图1检查服务器连接,视图2显示主要内容,view3显示支持页面),我在故事板中创建它们而不编码.在启动我的iOS应用程序时,视图1在检查服务器连接时显示一个微调器.如果连接检查通过,那么我想去查看2,如果它失败了,那么我想去查看3.视图1仅用于连接检查,我不想回到这个视图.所以,我想我不需要导航控制器,或者?

在故事板中,我将所有视图与sequ​​es连接起来.在我的视图控制器1中我这样做:

override func viewDidLoad() {
    super.viewDidLoad()

    let result:Bool = server.isServerAvailable(myURL)

    if (result == true) {
        performSegueWithIdentifier("ConnectionCheckToMain", sender: self)
    }
    else {
        performSegueWithIdentifier("ConnectionCheckToSupport", sender: self)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个viewDidLoad()函数中的segue 不起作用,但我不知道为什么.我在视图上添加了一个按钮来检查它.我已经实现了相同的代码viewDidLoad(),它工作正常.单击按钮时,将加载下一个视图.

有什么想法代码不起作用吗?

storyboard uinavigationcontroller viewdidload segue swift

7
推荐指数
2
解决办法
7767
查看次数

Swift/iOS:加载视图控制器后IBOutlet为零

我正在构建一个应用程序(在XCode 8.2.1中),其中一些对象显示在2D板上,当用户点击其中一个对象时,应该将某些信息显示为样式模态信息框.我的设计是将信息写在一个单独的视图控制器中,我会在需要时显示.

我为第二个视图控制器设计了一个基本存根,并在界面构建器中为它添加了一个标签.然后我将此标签ctrl链接到我的自定义VC类:

class InfoViewController: UIViewController {
    @IBOutlet weak var info: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    func displayInfo() {
        info.attributedText = NSAttributedString(string: "abc")
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我测试我的应用程序并点击该对象时,该info字段nil甚至在viewDidLoad()我的自定义VC类的方法中.我正在显示我的VC的方式如下:

let infoViewController = InfoViewController()
infoViewController.modalPresentationStyle = .overCurrentContext
self.present(infoViewController, animated: true, completion: nil)
infoViewController.displayInfo()
Run Code Online (Sandbox Code Playgroud)

(注意:最后我将只有一个实例,InfoViewController但这只是用于测试.我不希望全局实例会有任何区别吗?)

正如我所说,无论是在viewDidLoad()方法内部还是在displayInfo()方法中,info总是nil如此,设置其attributedString属性会使应用程序崩溃.认为这个present方法可能是异步调用的,我试过displayInfo()从内部调用viewDidLoad(),但这没有任何区别.

任何人都可以告诉我我忘记了什么会让我IBOutlet正确地初始化吗?

谢谢!

大卫

xcode uiviewcontroller viewdidload ios swift

7
推荐指数
1
解决办法
8661
查看次数

didFinishLaunchingWithOption和viewDidLoad之间有什么区别

两者有什么方法之间的差异didFinishLaunchingWithOptionviewDidLoad

前者是一种方法,AppDlegate.m 后者是一种方法ViewController.m,但它们都执行将UI加载到视图上的相同任务.

iphone viewdidload

6
推荐指数
1
解决办法
883
查看次数