标签: viewdidload

为什么在viewDidLoad中添加子视图不起作用

我试图将UIToolBar添加到UIWebView中,但每当我在viewDidLoad中插入此代码时UIToolBar都没有显示,但是当在viewWillAppear中完成时,它可以工作.有人可以向我解释一下.

-(void)viewDidLoad
{
[super viewDidLoad];
self.forwardButton = [[UIBarButtonItem alloc]initWithTitle:@"Forward"          style:UIBarButtonItemStylePlain target:self action:@selector(forward)];
self.backButton = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(back)];
NSArray *buttonsArray = @[self.backButton,self.forwardButton];
CGRect toolBarFrame = CGRectMake(0, self.view.frame.size.height - 44, self.view.frame.size.width, 44);
self.toolbar = [[UIToolbar alloc]initWithFrame:toolBarFrame];
[self.toolbar setItems:buttonsArray animated:YES];
[self.toolbar sizeToFit];
[self.view addSubview:self.toolbar];
}
Run Code Online (Sandbox Code Playgroud)

objective-c uiwebview viewdidload viewwillappear ios

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

如何等待 UIViewController 完全初始化?

我有一个自定义的 segue 类型(覆盖 init 并执行 UIStoryboardSegue 的方法),并且在 init 方法中我实例化了目标视图控制器(VC)。在源 VC 的 prepareForSegue 方法中,我调用了目标 VC 的方法,该方法尝试重新加载目标 VC 的 tableView。问题是表视图并不总是被初始化,当我调用表视图的 reloaddata 时,我有时会得到一个零取消引用错误。问题是我如何才能等到 VC 完全初始化而不出现此错误?我正在使用 swift,如果您为 swift 的答案编写任何示例代码,我将不胜感激。

viewdidload ios uistoryboardsegue swift

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

UICollectionView 在 vi​​ewDidLoad 中的大小不正确

我在我的故事板中定义了一个简单的 UICollectionView(见截图)。

在此处输入图片说明

我正在使用自动布局,UICollectionView 附加到超级视图的前导、尾随和顶部以及底部的工具栏。

当我在控制台中显示 viewDidLoad 中 UICollectionView 的大小时:

NSLog(@"%s CollectionView ========== > height:%f width:%f", __PRETTY_FUNCTION__,self.theCollectionView.bounds.size.height, self.theCollectionView.bounds.size.width);
Run Code Online (Sandbox Code Playgroud)

我得到: CollectionView ========== > 框架高度:492.000000 宽度:600.000000

这个尺寸也显示在故事板中(宽度:600 高度:492)。

当我在 viewDidAppear 中运行相同的日志时,我得到: CollectionView ========== > Frame height:663.000000 width:1024.000000

这是我所期望的。我很惊讶只有在 viewDidAppear 中有合适的大小,请你解释一下或者我的故事板有什么问题吗?

谢谢,

塞巴斯蒂安。

viewdidload viewdidappear ios autolayout uicollectionview

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

iPhone视图加载多次......但从未卸载?

我的iPhone应用程序基于一个常见的"实用程序模板",如Apple自己的Weather应用程序.

我点击信息按钮,它会翻转屏幕.我点击完成按钮......然后它翻转.这一部分似乎都运转正常.

我已经在我的FlipSideViewController.m中的4个方法中的每个方法中放置了NSLog()语句

viewDidLoad
viewWillAppear
viewDidUnload
viewWillDisappear
Run Code Online (Sandbox Code Playgroud)

当我翻转我的FlipSide时,我不应该看到调用viewDidLoad和viewDidAppear.当我翻回时看到viewWillDisappear和viewDidUnload?

相反,我从未看到任何viewDidUnload调用.但每次我翻转我的FlipSide时,我都会看到另一个viewDidLoad.那是错的吗?

一次又一次地来回翻转,我会看到:

viewDidLoad
viewWillAppear
viewWillDisappear

viewDidLoad
viewWillAppear
viewWillDisappear

viewDidLoad
viewWillAppear
viewWillDisappear
Run Code Online (Sandbox Code Playgroud)

这是不是意味着视图重新加载了3次......但是卸载了0次?不应该有"匹配"加载/卸载和出现/消失的方法吗?

iphone objective-c viewdidload viewwillappear

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

viewdidload和viewload之间的区别

两个objective-c方法, - (void)viewDidLoad和 - (void)loadView是在执行程序时调用的方法,但它们之间有什么不同?

iphone objective-c viewdidload loadview ios5

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

在ViewDidLoad上检查空的NSString?

我的应用程序在启动时检查NSString是否为空,如下所示:

if ([checkfieldstring1 isEqualToString:@""]) {

    checkboxButton.hidden = YES;
}
else {

    checkboxbutton.hidden = NO;
}
Run Code Online (Sandbox Code Playgroud)

但是,当存在空字符串时,该按钮不会被隐藏.我知道这个方法在我将它作为IBAction挂钩到按钮时有效,但在ViewDidLoad上没有...

iphone nsstring viewdidload

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

如何在[self dismissModalViewControllerAnimated:YES]之后调用viewDidLoad;

好的.如果你有两个viewControllers,你从第一个到第二个进行模态Segue,那么你用[self dismissModalViewControllerAnimated:YES]解雇它; 它似乎没有回忆起viewDidLoad.我有一个主页面(viewController),然后是各种选项页面,我希望在更改选项时更新主页面.当我刚刚做了两个模态分段(一个前进,一个后退)时,这很有用,但这似乎是非结构化的,并且可能导致大型项目中的代码混乱.

我听说过push segues.他们还好吗?

谢谢.我感谢任何帮助:).

xcode objective-c viewdidload ios segue

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

为什么CLLocationManager总是返回true?

我正在使用[CLLocationManager locationServicesEnabled]函数来获取是否启用位置服务的状态.我保留了viewDidLoad方法代码.

if(![CLLocationManager locationServicesEnabled])
{
    NSLog(@"No");
}
else
{
    NSLog(@"Yes");
}
Run Code Online (Sandbox Code Playgroud)

当我第一次运行这个应用程序时它会返回Yes.为什么?它应该归还我No.当我没有选择"允许"或"不允许"选项时就是这种情况.意味着我既不允许也不允许,但viewDidLoad我得到了Yes.

现在我选择"不允许"并再次加载它viewController.在这个时候,至少它应该归还我No,但我仍然得到了Yes.为什么?

这么多困惑CLLocationManager.

有任何想法吗?

iphone viewdidload mkmapview cllocationmanager ios

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

仅在视图出现后自动开始计算

我有一个视图控制器,只显示计算过程中的进度.我把方法调用了

viewDidLoad但问题是认为只有当计算完成出现!怎么样

视图出现在屏幕上后,我可以自动启动计算吗?

iphone objective-c uiviewcontroller viewdidload ios

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

同一视图控制器加载两次

我已经阅读了有关此问题的几篇文章,但都没有解决我的问题。

我正在编写一个应用程序,我必须单击一个按钮(“准备”)以转到以下ViewController。单击该按钮时,它还会在两个视图控制器之间传递数据。

问题是,当我单击按钮时,以下ViewController加载两次。因此,如果我想返回,则必须返回两个相同的ViewController。

我已经检查了segue,类名和文件名,但没有任何修复方法。
我还创建了一个新项目,并从一开始就重写了所有代码,但最后仍然无法正常工作。

但是,我注意到在添加prepare(forSegue :)函数和performSegue函数时出现了问题。没有它,ViewController只会加载一次。但是,当然,没有它我就无法在视图之间传递数据。

这是我的两个视图的屏幕快照以及两个函数的代码:

第一视图
第二视图

//    Prepare the segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "prepareSegue" {
        let timerViewController = segue.destination as! CountdownViewController
        timerViewController.timeInterval1 = waitingTime
        timerViewController.timeInterval2 = shootingTime
        timerViewController.lastSeconds = lastSeconds
        timerViewController.currentTimeInterval = waitingTime
    }
}

//    Prepare the timer when the button is pushed
@IBAction func prepareTimer(_ sender: Any) {
    performSegue(withIdentifier: "prepareSegue", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

viewdidload viewcontroller ios segue swift

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