objective-c - 单点触控 : The correct way to override UIViewController method

标签 objective-c ios xamarin.ios overriding

假设我有一个名为 MyCustomUIViewController 的自定义 Controller ,它扩展了 UIViewController:

public class MyCustomUIViewController : UIViewController
{
   //- my class implementation
}

现在我想重写这样的方法:

public override void ViewDidLoad()
{
   base.ViewDidLoad();

   //- other stuff here
}

是否需要调用base.ViewDidLoad()?我必须在哪里调用基本方法?在自定义代码之前还是之后(即此处的其他内容)?我见过许多示例,其中基本方法在执行操作之后放置,甚至被省略。

提前致谢。问候。

最佳答案

是的,当你覆盖时你需要调用 base。调用基地确保您不会短路苹果现在或将来可能拥有的东西。此外,这是一个好习惯,因为在更深层次的继承中,您还可以将一些需要调用的代码短路。

通常,您首先调用 base。

例如,如果这个典型的 Objective-C 代码是等价的:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[self navigationItem] setTitle:@"Title"];

    // ...

关于objective-c - 单点触控 : The correct way to override UIViewController method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372553/

相关文章:

iOS11自定义导航栏高度

objective-c - NSDictionary 查找 +valueWithPointer : keys are too slow

ios - 扩展投影矩阵

ios - Swift - UIBarButtonItem.customView - 重置为原始状态

c# - 如何使用 Monotouch.Dialog 设置背景图片

iphone - 用 modalview 调用 navigationcontroller?

ios - 某些代码未在从另一个 ViewController 调用的方法中执行

ios Face ID LocalAuthentication , localizedReason 不起作用

c# - 用于 Android/MonoTouch System.Net.WebException : Request aborted 的单声道

c# - 当小 View 堆叠在顶部时,无法滚动 Xamarin.Forms ScrollView