标签: viewcontroller

AppDelegate.m和View Controller.m之间的区别

在iPhone编程期间我们何时使用AppDelegate.m和AppDelegate.h可以告诉我吗?我只使用ViewController.m和ViewController.h进行基本学习.我只是想知道AppDelegate的使用时间和原因.谢谢.!

iphone xcode delegates objective-c viewcontroller

13
推荐指数
3
解决办法
2万
查看次数

为什么我的文件不断从xcode的项目导航器中消失?

我正在开发的项目是作为带有故事板的单一视图应用程序启动的,我添加了另外两个视图控制器,每个控制器都有一个.m和一个.h文件.但是,每次保存,退出然后重新启动时,4个新文件都会从项目导航器中消失.我必须点击"将文件添加到项目"并每次从项目的文件夹中手动拖动它们.它并不是非常不方便,但它很烦人,我基本上只是在我不工作的时候最小化项目.有谁知道发生了什么,或者我如何强制文件保留在导航器中?这种事从未发生过.

iphone xcode viewcontroller

13
推荐指数
3
解决办法
5722
查看次数

内存:对象在视图控制器关闭后不会释放,使用ARC

我有2个视图控制器,

FirstViewController - > SecondViewController via

[self presentViewController:SVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

记忆图

在我做的时候在SecondViewContrller上

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的问题是,在我关闭这个viewcontroller后,为什么对象不会在secondViewController上释放.正如您在图表中看到的那样,在解雇后它没有下降.BTW有什么最好的方式来释放/解散ViewController?

[编辑]

我在每个VC上使用dealloc方法的NSLog消息,当我从FVC-> SVC开始 - > [关闭SVC]时.这是我的日志

在此输入图像描述

memory-management objective-c viewcontroller ios

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

在分离的视图控制器上呈现视图控制器

我有sideViewController一个按钮和Action,通过单击此按钮显示新的视图控制器.

class sideViewController: UIViewController {
    @IBOutlet var buttonVC1 : UIButton!
    @IBAction func goToVC1 () {
        var VC1 = self.storyboard.instantiateViewControllerWithIdentifier("ViewController") as ViewController
        presentViewController(VC1, animated:true, completion: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

我在主视图控制器中使用它:

class ViewController: UIViewController {
    var menu : sideViewController!
    override func viewDidLoad() {
        super.viewDidLoad()
        menu = self.storyboard.instantiateViewControllerWithIdentifier("menu") as      sideViewController
        menu.view.frame = CGRect(x: 0, y: 0, width: 160, height: 480)
        view.addSubview(menu.view)
}
Run Code Online (Sandbox Code Playgroud)

当我单击此按钮时,问题是:"不鼓励在分离的视图控制器上显示视图控制器"

我该怎么做才能解决这个问题?

viewcontroller ios swift

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

在swift中的UICollectionViewCell中设置UIimage上的圆角

我有一个简单的问题,我无法在谷歌,文档或这里找到解决方案.

我的视图控制器中有一个Collectionview.我创建了一个包含UIImage的自定义单元格DescriptionCell.我希望这个图像有圆角.但是,我不知道在UIImage层上设置cornerradius的位置.我已尝试在单元格的awakeFromNib方法中,在委托方法CellForRowAtIndexPath中覆盖单元格中的LayoutSubview但它不起作用.我应该在哪里放置代码来设置UIImage的半径?

要指定,我知道如何创建UIImage的圆角.但如果它是Collectionview单元格的子视图,我不知道在哪里设置cornerradius.

这是我的descriptionCell的代码

class DescriptionCell: UICollectionViewCell {
    @IBOutlet weak var mImage: UIImageView!

    override func awakeFromNib() {
    //mImage.layer.cornerradius = 5 
    //Does not work, the image is still square in the cell
    }
Run Code Online (Sandbox Code Playgroud)

并在cellforRowAtIndePath中

 func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
var cell = collectionView.dequeueReusableCellWithReuseIdentifier("descriptioncell", forIndexPath: indexPath) as! DescriptionCell
    //cell.mImage.layer.cornerradius = 5 
    //Does not work, the image is still square in the cell
return cell    
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

uiimage viewcontroller collectionview ios swift

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

ios:如何解除模态视图控制器,然后弹出推送视图控制器

我有一个视图控制器B被根视图控制器A推入导航堆栈,如果该模型处于特定状态,则该视图控制器B需要显示另一个视图,因此它模态地呈现另一个视图控制器C.当我解雇时视图控制器CI还想弹出视图控制器B,如果它也在导航堆栈上.我想这样做只有一次过渡.

有任何想法吗?

viewcontroller pushviewcontroller modalviewcontroller ios

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

iOS中场景和视图之间的区别

我是iOS新手我无法理解场景和视图之间的区别.不幸的是Apple的文档没有帮助我.我看到一个场景就是你在屏幕上看到的.但这不是一个观点吗?这两个可互换的术语是?如果没有,那么功能和最佳实践有何区别?ViewController如何为这两者发挥作用?

任何解释或链接都非常感谢.

iphone objective-c scene viewcontroller ios

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

以编程方式在swift中呈现视图控制器

嗨我正在尝试将以下目标C代码转换为swift,以便在单击按钮时从一个视图控制器导航到另一个视图控制器.任何帮助将非常感激

这取自苹果的编程指南

  - (void)add:(id)sender {
 // Create the root view controller for the navigation controller
 // The new view controller configures a Cancel and Done button for the
 // navigation bar.
   RecipeAddViewController *addController = [[RecipeAddViewController alloc]
                   init];

 // Configure the RecipeAddViewController. In this case, it reports any
 // changes to a custom delegate object.
   addController.delegate = self;

 // Create the navigation controller and present it.
  UINavigationController *navigationController = [[UINavigationController alloc]
                         initWithRootViewController:addController];
  [self presentViewController:navigationController animated:YES completion: nil];
  }
Run Code Online (Sandbox Code Playgroud)

我的代码如下所示,但不确定如何在导航控制器中实现,在故事板中我的mainSectionViewController嵌入了导航控制器

    func sectionBtnClicked …
Run Code Online (Sandbox Code Playgroud)

viewcontroller swift

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

加载iOS应用程序后更改根视图控制器.

为了在应用加载时显示我的登录屏幕,而不是在用户登录后显示,我决定在用户​​成功登录时在NSUserDefaults中添加auth对象.当应用程序启动时,检查auth参数,并相应地设置视图控制器(如果用户是auth它将显示一个feed,如果没有它将显示一个登录屏幕)在后一种情况下,我有app委托在用户登录后将根视图控制器重置为源.这是不好的做法还是更好的方法?

app委托中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary     *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    IIViewDeckController* deckController = [self generateControllerStack];
    self.rightController = deckController.rightController;
    self.centerController = deckController.centerController;

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    if([[defaults objectForKey:@"auth"] isEqualToNumber:[NSNumber numberWithInt:1]]){
        self.window.rootViewController = deckController;
    }else{
        UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                 bundle:nil];
        UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"loginViewController"];
        self.window.rootViewController = vc;
    }
    [self.window makeKeyAndVisible];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
    return YES;
}

- (void) setRoots
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    IIViewDeckController* deckController = [self …
Run Code Online (Sandbox Code Playgroud)

viewcontroller ios uistoryboardsegue appdelegate

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

ios - 多个NavigationControllers之间的导航

我试图理解使用NavigationController在(和没有)ViewControllers之间导航的行为,我在阅读文章和文档时误解了一些事情,所以我决定问他们.

主要问题是:如果我们在Storyboard中有多个NavigationControllers并希望从一个到另一个,会发生什么?(这可以通过我们在常见的VC之间使用segue来实现,我是对的吗?)

据我所知,NavigationController代表了一堆ViewControllers,我们可以在其中弹出并推送这些VC.那么现在我们将第一个NavigationController的VC的"位置"从第二个改为VC,接下来会发生什么?第一个堆栈消失了,现在我们只在第二个堆栈内工作了?如果是这样,是否意味着第一个NavigationController的VC堆栈是否已从内存中删除?

也许我完全误解了某些东西或者可能不是:).我很乐意看到您的回复,并希望向您询问有关导航力学的更多详细问题.

UPDATE

关键在于:假设我们有一个(初始)VC,其中两个按钮代表应用程序的两个独立部分.接下来我们点击第一个按钮然后转到一个NC的RootVC,而不是回到我们的初始VC按下第二个按钮然后转到另一个NC.当我们回到最初的VC时,第一个NC的堆栈发生了什么?最初的"NC"到初始VC的最佳方式是什么?

UPDATE

我试图了解内存会发生什么,以及当前场景中哪些VC等等.如果我们在场景中有一些额外的VC,也许它绝对不重要,也许我们确实需要它们更快地在NC(或只是VC)之间切换.所以我想了解它是如何运作的.

viewcontroller ios segue swift

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